Cách dùng InputBox trong VBA Excel thông qua ví dụ điển hình

InputBox là một hộp thoại nhập liệu có sẵn trong VBA Excel, nhắc người dùng nhập giá trị và chỉ hỗ trợ nhập một trường thông tin.
Cách dùng InputBox trong VBA Excel thông qua ví dụ điển hình

Hinh anh msgbox trong vba excel

InputBox trong VBA Excel là gì ?

InputBox là một hộp thoại nhập liệu có sẵn trong VBA, nhắc người dùng nhập giá trị và chỉ hỗ trợ nhập một trường thông tin. Sau khi nhập giá trị, nếu người dùng nhấn vào nút OK hoặc nhấn phím Enter trên bàn phím thì InputBox sẽ trả về giá trị của ô nhập. Nếu người dùng nhấn vào nút Cancel, hàm sẽ trả về một chuỗi rỗng (“”). Ngoài hộp thoại Inputbox thì trong VBA Excel còn một hộp thông báo thường dùng khác là MsgBox. Các bạn có thể tham khảo bài viết về hộp thông báo MsgBox tại đây.

Cú Pháp của InputBox trong VBA Excel.

InputBox(Prompt,[Title],[Default],[Xpos],[Ypos],[HelpFile],[Context])

Trong đó, các thông số trong InputBox có ý nghĩa là:

Promt (lời nhắc): Tham số bắt buộc. Được dùng để đặt tên cho giá trị nhập. Chuỗi được hiển thị dưới dạng thông báo trong hộp thoại. Độ dài tối đa của lời nhắc là khoảng 1024 ký tự.

Đối với InputBox, thì đây là đối số duy nhất phải khai báo, không thể giản lược. Các đối số khác thì bạn có thể giản lược.

Đối số Prompt trong InputBox sẽ chỉ định ký tự được hiển thị. Nó có thể là ký tự, số, ngày tháng, hay logic (True/False) nhưng thực tế trước khi thực thi, VBA sẽ chuyển nó thành kiểu dữ liệu là String (chuỗi). Hãy chú ý điều này.

Đối số Prompt thường sẽ hiển thị chuỗi ký tự trên một hàng. Nếu như bạn muốn xuống dòng, hãy sử dụng vbCrLf, đây là hằng số có ý nghĩa xuống dòng, nó có ý nghĩa tương tự Chr(13) và Chr(10). Để ngắn gọn, bạn hãy sử dụng hằng số vbCrLf.

[Title] (tiêu đề): Tham số tùy chọn. Được dùng để đặt tiêu đề cho InputBox. Nếu tiêu đề để trống, thông thường dòng tiêu đề mặc định sẽ là "Microsoft Excel" sẽ được hiển thị trên thanh tiêu đề.

[Default] (Mặc định): Tham số tùy chọn. Giá trị mặc định mỗi khi InputBox được hiển thị.

[XPos]: Một tham số tùy chọn. Vị trí của trục X biểu thị khoảng cách dấu nhắc từ phía bên trái của màn hình theo chiều ngang. Nếu để trống, hộp nhập liệu sẽ được căn giữa theo chiều ngang.

[YPos]: Một tham số tùy chọn. Vị trí của trục Y biểu thị khoảng cách dấu nhắc từ phía bên trái của màn hình theo chiều dọc. Nếu để trống, hộp nhập liệu sẽ được căn giữa theo chiều dọc.

[helpfile]: Mở file trợ giúp có thể truy cập được khi người dùng nhấn vào nút Help. Nút Help chỉ xuất hiện khi chúng ta sử dụng mã nút. Nếu sử dụng file Help, chúng ta cũng phải chỉ định các đối số ngữ cảnh.

[context]: Một tham số tùy chọn. Là tham số dùng để chỉ định trang bên trong file Help được hiển thị ra.

Ví dụ sử dụng VBA Input Box trong Excel

Ví dụ 1: Tính diện tích của hình chữ nhật bằng cách nhận các giá trị từ người dùng trong thời gian chạy với sự trợ giúp của hai hộp InputBox đầu vào (một dùng cho chiều dài và một dùng cho chiều rộng).

Mở Tab Developer > chọn Trình soạn thảo Visual Basic từ nhóm Code hoặc bạn cũng có thể nhấn tổ hợp phím Alt + F11 để mở. Nhấn vào Insert > chọn Module. Hãy nhập đoạn code sau:


Function Tinh_DT() 
   Dim Chieu_Dai As Double 
   Dim Chieu_Rong As Double 
   Chieu_Dai = InputBox("Nhap chieu dai", "Nhap mot so") 
   Chieu_Rong = InputBox("Nhap chieu rong", "Nhap mot so") 
   Tinh_DT = Chieu_Dai * Chieu_Rong 
End Function

Bây giờ, chúng ta hãy áp dụng hàm tính diện tích trên cho Bảng tính Excel với các bước tuần tự như sau:

Bước 1: Để thực hiện, hãy gọi bằng tên hàm và nhấn phím Enter như trong ảnh chụp màn hình sau.

Hinh anh inputbox trong vba excel 1

Bước 2: Sau khi thực hiện, hộp Nhập đầu tiên (chiều dài) được hiển thị. Các bạn hãy nhập một giá trị vào hộp đầu vào.

Hinh anh inputbox trong vba excel 2

Bước 3: Sau khi nhập giá trị đầu tiên, hộp nhập thứ hai (chiều rộng) được hiển thị. Các bạn hãy nhập một giá trị vào hộp nhập liệu thứ hai này.

Hinh anh inputbox trong vba excel 3

Bước 4: Khi nhập số thứ hai, nhấp vào nút OK. Khu vực được hiển thị như trong ảnh chụp màn hình sau.

Hinh anh inputbox trong vba excel 4

Ví dụ 2: Nhập văn bản, chẳng hạn họ tên vào một cột (cột A) bằng cách nhập thông qua InputBox

Mở Tab Developer > chọn Trình soạn thảo Visual Basic từ nhóm Code hoặc bạn cũng có thể nhấn tổ hợp phím Alt + F11 để mở. Hãy nhập đoạn code sau:


Sub Nhap_ten_input_box()
'Khai bao bien iRow de luu tru so luong hang.
Dim iRow As Long
'Ham CountA dem cac o khong trong cua cot A va gan vao bien iRow
iRow = WorksheetFunction.CountA(Range("A:A"))
'Chon o trong tiep theo cua cot A
Cells(iRow + 1, 1).Select
'Nhap gia tri tu hop inputBox vao o hien hanh
ActiveCell = InputBox("Nhap ho va ten ?", "Nhap ten")
End Sub

Hinh anh inputbox trong vba excel 5

Bây giờ, chúng ta sẽ chạy đoạn code này bằng cách bấm vào RUN hoặc bấm F5. Như chúng ta có thể thấy trong hình minh họa bên dưới, Hộp InputBox được hiển thị yêu cầu bạn nhập họ và tên. Kết quả sẽ hiển thị trong cột A của Bảng tính excel.

Hinh anh inputbox trong vba excel 6

Tham khảo các chủ đề có liên quan khác:

Đăng nhận xét