11. Hộp thoại trong VBA
11.2. Phương thức InputBox (Inputbox Method)
Nhằm thể hiện hộp thoại để người sử dụng nhập dữ liệu vào.
Khi sử dụng phương thức này, một hộp thoại sẽ cho hiện ra để bạn vào dữ liệu, chờ cho người dùng nhập dữ liệu vào hoặc là bấm vào nút OK hoặc Cancel, giá trị nhận được được coi là chuỗi (string). Đây là một cách để vào giá trị đơn lẻ hoặc địa chỉ của các ơ trong q trình chạy macro. Bạn khơng thể gán được lệnh khi chọn nút OK hay Cancel như trong MsgBox. Đó chính là hạn chế của hàm này nên ít được ứng dụng khi đầu vào nhiều số liệu.
Phương thức InputBox ở dạng tổng quát
expression.InputBox (prompt [, title] [, default], [, left], [, top] [helpfile, context] [, type]) Expression: một biểu thức trả về đối tượng Application.
Trong đó:
prompt là nội dung lời nhắc của hộp vào dữ liệu. title là tuỳ chọn nội dung chữ trên đầu hộp vào dữ liệu.
left là tuỳ chọn khoảng cách từ góc bên trái hộp thoại đến góc bên trái màn hình (mặc định là hộp thoại nằm giữa màn hình). Đơn vị tính là là điểm (point), một điểm bằng 1/72 inch hay khoảng 1/28 cm. Chức năng này ít sử dụng.
top là tuỳ chọn khoảng cách từ đỉnh hộp thoại đến đỉnh màn hình (mặc định là hộp thoại nằm giữa màn hình). Đơn vị tính là là điểm. helpfile là tuỳ chọn và điều khiển file trợ giúp nào để sử dụng.
context là tuỳ chọn và là số thứ tự tình huống trong helpfile. Nếu helpfile có thì mục context cũng phải có. type là tuỳ chọn biến số đầu vào. Trong trường hợp bỏ qua, giá trị đầu vào coi như là chuỗi.
Ví dụ:
Sub VD_Input() Dim Dangmang
Dim Cot, Hang As Integer
Set Mang = Application.InputBox("Vao mang:", "Linh tinh", Type:=8) Cot = Dangmang.Columns.Count ‘ Tính số cột chọn
Hàng = Dangmang.Rows.Count ‘ Tính số hàng chọn MsgBox "So cot la: " & Cot
MsgBox "So hang la: " & Hang
MsgBox "Dia chi o dau la: " & Dangmang.Cells(1, 1).Address
MsgBox "Dia chi o cuoi la: " & Dangmang.Cells(Cot, Hang).Address ‘ Address là thông tin địa chỉ ơ
End Sub
Hình 43: Ví dụ về sử dụng InputBox