Nếu bạn mới bắt đầu phát triển macro, bạn có thể đang tìm một cách đơn giản để cung cấp một tập hợp các lựa chọn cho người dùng, sau đó thực hiện hành động dựa trên phản hồi của người dùng. Đây là một nhiệm vụ tương đối đơn giản, nếu bạn sử dụng chức năng InputBox, cùng với cấu trúc Select Case.

Nhiệm vụ đầu tiên là thiết lập InputBox của bạn để nó hiển thị thông tin cho người dùng. Ví dụ: giả sử bạn có năm tùy chọn và bạn muốn người dùng chọn một tùy chọn từ năm tùy chọn đó. Bạn có thể sử dụng đoạn mã sau để tập hợp năm tùy chọn, mỗi tùy chọn trên một dòng riêng của chúng:

sPrompt = "1. This is your first choice" & vbCrLf sPrompt = sPrompt & "2. This is your second choice" & vbCrLf sPrompt = sPrompt & "3. This is your third choice" & vbCrLf sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf sPrompt = sPrompt & "5. This is your fifth choice"

Bây giờ bạn có thể sử dụng chuỗi sPrompt khi bạn gọi hàm InputBox trong macro của mình. Sau đó, bạn dịch những gì người dùng phản hồi thành một số thể hiện sự lựa chọn của họ từ năm lựa chọn của bạn. Mã để thực hiện việc này như sau:

sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

Trong ví dụ này, phản hồi từ hàm InputBox được gán cho biến sUserResp, biến này phải là một chuỗi. Biến iUR, là một biến số (số nguyên), sau đó được đặt dựa trên giá trị của chuỗi. (Hàm Val trả về giá trị trong một chuỗi.)

Điều duy nhất cần làm là thực hiện một hành động dựa trên số đã được chọn, từ 1 đến 5. Bạn có thể sử dụng cấu trúc Chọn trường hợp để thực hiện việc này.

Chương trình con đầy đủ có thể xuất hiện như sau trong VBA:

Sub TestInput()

Dim sPrompt As String     Dim sUserResp As String     Dim iUR As Integer

sPrompt = "1. This is your first choice" & vbCrLf     sPrompt = sPrompt & "2. This is your second choice" & vbCrLf     sPrompt = sPrompt & "3. This is your third choice" & vbCrLf     sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf     sPrompt = sPrompt & "5. This is your fifth choice"

iUR = 0     While iUR < 1 Or iUR > 5         sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

Wend     Select Case iUR         Case 1             'Do stuff for choice 1 here         Case 2             'Do stuff for choice 2 here         Case 3             'Do stuff for choice 3 here         Case 4             'Do stuff for choice 4 here         Case 5             'Do stuff for choice 5 here     End Select End Sub

Lưu ý rằng ví dụ này sử dụng vòng lặp While …​ Wend xung quanh hàm InputBox. Điều này được thực hiện để đảm bảo rằng người dùng nhập một số từ 1 đến 5. Nếu giá trị đã nhập nằm ngoài phạm vi đó, thì người dùng chỉ cần được hỏi lại.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.

(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (10763) áp dụng cho Microsoft Word 2007, 2010, 2013 và 2016. Bạn có thể tìm phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: