マクロでのオプションの提供(Microsoft Excel)
マクロの開発を始めたばかりの場合は、ユーザーに一連の選択肢を提供し、ユーザーの応答に基づいてアクションを実行する簡単な方法を探している可能性があります。 Select Case構造体とともにInputBox関数を使用する場合、これは比較的単純なタスクです。
最初のタスクは、ユーザーに情報を表示するようにInputBoxを設定することです。たとえば、5つのオプションがあり、ユーザーがそれらの5つから1つのオプションを選択できるようにしたいとします。次のコードを使用して、5つのオプションをそれぞれ独自の行にまとめることができます。
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関数を呼び出すときに、プロンプト文字列を使用できるようになりました。次に、ユーザーの応答を、5つのオプションからの選択を表す数値に変換します。これを行うためのコードは次のとおりです。
UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp)
この例では、InputBox関数からの応答がUserResp変数に割り当てられています。UserResp変数は文字列である必要があります。次に、数値であるUR変数が、文字列の値に基づいて設定されます。 (Val関数は値を文字列で返します。)
あとは、1から5までの番号を選択してアクションを実行するだけです。これを行うには、[ケースの選択]構造を使用できます。
完全なサブルーチンは次のようになります。
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
この例では、InputBox関数の周りにWhile … Wendループを使用していることに注意してください。これは、ユーザーが1〜5の数値を入力することを確認するために行われます。入力された値がその範囲外の場合、ユーザーは単に再度尋ねられます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(11059)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkマクロでのオプションの提供。