マクロの開発を始めたばかりの場合は、ユーザーに一連の選択肢を提供し、ユーザーの応答に基づいてアクションを実行する簡単な方法を探している可能性があります。 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変数に割り当てられており、この変数は文字列としてディメンション化されている必要があります。次に、整数としてディメンション化する必要があるUR変数が、文字列の値に基づいて設定されます。 (Val関数は値を文字列で返します。)

あとは、1から5までの番号を選択してアクションを実行するだけです。これを行うには、[ケースの選択]構造を使用できます。

完全なサブルーチンは次のようになります。

Sub Macro1()

Dim Prompt As String     Dim UserResp As String     Dim UR As Integer

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トレーニングのソースです。

このヒント(3098)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。