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