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.
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.
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.
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.
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
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.
Tham khảo các chủ đề có liên quan khác: