اگر بهتازگی توسعه ماکروها را شروع کردهاید، ممکن است به دنبال راهی ساده برای ارائه مجموعهای از انتخابها به کاربر باشید و سپس بر اساس پاسخ کاربران اقدامی انجام دهید. اگر از تابع InputBox همراه با ساختار Select Case استفاده کنید، این یک کار نسبتاً ساده است.
اولین کار این است که InputBox خود را راه اندازی کنید تا اطلاعات را به کاربر نمایش دهد. به عنوان مثال، فرض کنید شما پنج گزینه دارید و می خواهید کاربر یکی از آن پنج گزینه را انتخاب کند. می توانید از کد زیر برای کنار هم قرار دادن پنج گزینه، هر کدام در خط خود استفاده کنید:
Prompt = "1. This is your first choice" & vbCrLf
Prompt = Prompt & "2. This is your second choice" & vbCrLf
Prompt = Prompt & "3. This is your third choice" & vbCrLf
Prompt = Prompt & "4. This is your fourth choice" & vbCrLf
Prompt = Prompt & "5. This is your fifth choice"
اکنون می توانید هنگام فراخوانی تابع InputBox در ماکرو از رشته Prompt استفاده کنید. سپس آنچه کاربر با آن پاسخ میدهد را به عددی ترجمه میکنید که نشاندهنده انتخاب او از بین پنج گزینه شما است. کد انجام این کار به صورت زیر است:
UserResp = InputBox(Prompt, "The Big Question")
UR = Val(UserResp)
در این مثال، پاسخ تابع InputBox به متغیر UserResp که باید یک رشته باشد، اختصاص داده شده است. سپس متغیر UR که یک عدد است، بر اساس مقدار رشته تنظیم می شود. (تابع Val مقدار را در یک رشته برمی گرداند.)
تنها کاری که باید انجام دهید این است که بر اساس عددی که از 1 تا 5 انتخاب شده است اقدام کنید. برای این کار می توانید از ساختار Select Case استفاده کنید. زیربرنامه کامل می تواند به صورت زیر ظاهر شود:
Sub Macro1()
Dim Prompt As String
Dim UserResp As String
Dim UR As Single
Prompt = "1. This is your first choice" & vbCrLf
Prompt = Prompt & "2. This is your second choice" & vbCrLf
Prompt = Prompt & "3. This is your third choice" & vbCrLf
Prompt = Prompt & "4. This is your fourth choice" & vbCrLf
Prompt = Prompt & "5. This is your fifth choice"
UR = 0
While UR < 1 Or UR > 5
UserResp = InputBox(Prompt, "The Big Question")
UR = Val(UserResp)
Wend
Select Case UR
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
توجه داشته باشید که این مثال از یک حلقه Wend در اطراف تابع InputBox استفاده می کند. این کار برای اطمینان از اینکه کاربر عددی را بین 1 تا 5 وارد می کند انجام می شود. اگر مقدار وارد شده خارج از آن محدوده باشد، به سادگی از کاربر دوباره پرسیده می شود.