Thứ Năm, 28 tháng 3, 2019

Tập tành VBA: Biến (Variable)

Yêu cầu:

  • Đọc lại bài số 2, nơi ta đã tạo một nút bấm và thực hiện một đoạn mã ngắn để hiển thị cửa sổ thông báo khi bấm vào nút đó.

Dựa vào những gì đã có ở bài số 2, ta sửa lại đoạn mã của thủ tục CommandButton1_Click như sau:

  • Trước tiên, khai báo một biến tên là "message" có kiểu dữ liệu là kiểu chuỗi (String).

Dim message as String

  • Thứ hai, gán cho nó một giá trị là "Hi"

message = "Hi"

  • Thay dòng MsgBox("Hi") bằng MsgBox(message).

Nội dung soạn thảo hiện tại phải là:
Private Sub CommandButton1_Click()
    Dim message As String
    message = "Hi"
    MsgBox (message)
End Sub
 



  • Trở về sheet Excel, tắt chế độ Design, bấm nút, và cửa sổ thông báo với nội dung "Hi" vẫn xuất hiện như ở bài 2.

Sự khác biệt:

  • Ở bài 2, ta truyền giá trị "Hi" vào thẳng hàm MsgBox("Hi").
  • Ở bài 3 này, ta gián tiếp truyền giá trị "Hi" thông qua việc gán "Hi" vào biến "message", sau đó mới truyền vào hàm MsgBox(message).

Và đều cho ra một kết quả.

Biến giống như việc ta định danh một vị trí trong bộ nhớ, và được phép đính kèm (= gán) cho nó một giá trị.

Ví dụ như để tính diện tích hình chữ nhật, ta có thể chia làm 2 biến là: chieu_rong (chiều rộng) và chieu_cao (chiều cao), tính diện tích sẽ là s = chieu_rong * chieu_cao.

Trong lập trình việc dùng biến là tối quan trọng bậc nhất, nó giúp chúng ta chia nhỏ các quá trình tính toàn thành từng bước, dùng các biến để gán các giá trị trung gian trước khi tính ra kết quả cuối cùng.
Đoạn mã lập trình khi được phân chia thành các biến sẽ dễ đọc, dễ sửa, tựa như những công thức toán học.... vậy.

Chốt lại:

Cú pháp khai báo biến

Dim <tên biến> As <kiểu dữ liệu>

Vd:
Dim chieu_rong as Integer
Dim chieu_cao as Integer
Dim message as String
Dim doanhThu as Currency

Tên biến:
  • Bắt đầu bằng chữ cái (Vd: message, chieu_rong).
  • Không được chứa các kí tự đặc biệt như ! # @.
  • Không được dài quá 255 kí tự.
  • Không được trùng với các từ khóa đặc biệt trong VBA (như Sub, Call, Workbook)
 Lưu ý: Phần trên đã đủ cơ bản về biến, tuy nhiên vẫn khuyến khích đọc thêm phần dưới.

Kiểu dữ liệu 
Nếu nói về Excel thì kiểu dữ liệu làm việc chính là kiểu số, tuy nhiên cũng có nhiều kiểu số khác nhau tùy theo khoảng giá trị.

  • Kiểu byte: giá trị từ 0 - 255.
  • Kiểu Integer: giá trị từ -32,768 - 32,767
  • ...

Có thể xem thêm bảng tóm tắt:

Kiểu số


Các kiểu khác ngoài số

  • Chọn đúng kiểu dữ liệu để đảm bảo kết quả tính toán được chính xác, ví dụ như để lưu giá trị tiền bạc (thường sẽ rất lớn) ta sẽ dùng các kiểu: Single, Double, Currency, Decimal chứ không nên dùng Integer (max của nó chỉ tầm 32767) và Long (max chỉ tầm 2 tỉ).
  • Nếu biết chắc giá trị của một biến tối đa có thể là bao nhiêu thì ta có thể chọn những kiểu dữ liệu đủ chứa được, để tiết kiệm bộ nhớ, đúng mục đính.

2 kiểu quan trọng nhiều nữa là kiểu chuỗi (String) và giá trị luận lý (logic - Boolean  - Đúng/sai).
Kiểu Boolean ta sẽ gặp rất nhiều trong các bài sau, ở bài vòng lặp (for) và điều kiện (if else).

Ok, với kiến thức về biến như hôm nay, mình nghĩ hôm sau ta sẽ nói về các đối tượng trong Excel (Excel Object) nhằm giúp chúng ta đạt được các tác vụ thường ngày như mở file Excel lên, đọc sheet 1 và tính giá trị bên sheet2,... hoàn toàn có thể làm được.

Sau đó chúng ta sẽ quay ngược lại với các khái niệm cơ bản trong bất cứ ngôn ngữ lập trình nào: điều kiện, vòng lặp. Từ đó ta sẽ dần xây được nền tảng trong việc lập trình VBA.

Và mục tiêu sẽ là: hình thành được tư duy, cách phát biểu các vấn đề (nói thẳng là các tác vụ, việc cần tính toán trong sheet Excel thông qua VBA) trước khi đặt tay vào code.

Nguồn tham khảo: https://www.tutorialspoint.com/vba/vba_variables.htm

Không có nhận xét nào:

Đăng nhận xét