NTM Solutions

Facebook Youtube Google+

Thứ Tư, 19 tháng 7, 2017

VBA Macro - Bài 05 - Cách sử dụng biến trong VBA.docx


Quay về mục lục VBA Macro

VBA có 04 loại biến sau:
1.       Integer -> Số nguyên
2.       Double -> Số thực (có dấu “.”)
3.       Boolean -> TRUE hay FALSE
4.       String -> Kiểu chuỗi
Để ép user phải khai báo biến trước khi sử dụng , ta dùng câu lệnh sau ở ngay dòng đầu tiên trước khi khai báo Function hay Sub
Option Explicit
Khi đã có dòng này nếu sử dụng biến mà chưa khai báo Dim, VBA sẽ báo lỗi.
Ví dụ:



Thông báo lỗi sẽ là:

Tùy vào dữ liệu đầu vào ta sẽ khai báo cho hợp lý.

+ Ví dụ 1: Yêu cầu người dùng nhập tên => xuất ra câu chào & tên người đó
Tạo file Book1.xlsm => vào cửa sổ CODE chọn đối tượng Workbook- sự kiện Open => Gõ dòng CODE sau:
Dim s As String ‘Dòng 01 khai báo biến s có kiểu chuỗi(String)
s = InputBox("Nhâp tên ban:") ‘Gán kết quả hàm InputBox() vào biến s
MsgBox "Xin chào " & s ‘Xuất câu chào và biến s ra màn hình
+ Ví dụ 2: Yêu cầu người dùng nhập 02 số a và b => xuất ra màn hình kết quả a + b
Dim a,b,ketqua As Integer           ‘Khai báo 03 biến a,b,ketqua
a = CInt(InputBox(“Nhâp sô a:”))             ‘Gán kết quả hàm InputBox() vào biến a
b = CInt(InputBox(“Nhâp sô b:”))             ‘Gán kết quả hàm InputBox() vào biến b
ketqua = a + b   ‘Gán kết quả a + b vào biến ketqua
MsgBox “a + b = “ & ketqua        ‘Xuất biến kết quả ra màn hình
Hàm CInt() là hàm ép kiểu bất kỳ => kiểu Integer (Vì hàm InputBox trả về kết quả là 01 chuỗi)
Các bạn thử không dùng hàm CInt() xem kết quả thế nào nhé.
Và sau đây là tất cả hàm ép kiểu của VBA
  • CBool(expression)
  • CByte(expression)
  • CCur(expression)
  • CDate(expression)
  • CDbl(expression)
  • CDec(expression)
  • CInt(expression)
  • CLng(expression)
  • CLngLng(expression) (Valid on 64-bit platforms only.)
  • CLngPtr(expression)
  • CSng(expression)
  • CStr(expression)
  • CVar(expression)

Lặp lại ví dụ trên nhưng khai báo kiểu là Double =>
+ Ví dụ 3: Hiện MsgBox có 02 nút Yes hoặc No
Xuất ra kết quả chọn của người dùng
Dim s As Integer
Dim ketqua As Boolean

ketqua = False
s = CInt(MsgBox("Ban là sinh viên?", vbYesNo))
If s = 6 Then
    ketqua = True                                ‘Khi người dùng bấm nút Yes kết quả trả về là 6
End If
If ketqua Then
    MsgBox "Dung"
Exit Sub
End If
MsgBox "Sai!!"
Để biết độ lớn của các biến ta dùng hàm VarType(tên_biến) , đơn vị là byte
Ví dụ:
Dim s As String
MsgBox VarType(s)

Nếu vẫn chưa hiểu các bạn xem video clip sau: