まさ工房

ExcelVBAとAcessDBを利用した業務支援ツールを作成する工房です

【Excelマクロ・VBA】InputBox関数の使い方がわからないです。教えて!

       f:id:m_kbou:20190618102151p:plain

InputBox関数は、ダイアログボックス内にあるテキストボックスに入力された文字列を返します。具体的な使い方について説明します。

 

【目次】

 

構文

InputBox関数の記述方法は、以下の通りとなります。

=======================================================================

InputBox(”[メッセージ]”,”[タイトル]”,”[テキストBOX]”)

=======================================================================

[説明]:

[メッセージ]には、ダイアログボックス内にメッセージとして表示する文字列を記述します。[タイトル]には、ダイアログボックスのタイトルバーに表示する文字列を記述します。 [テキストBOX]には、テキストボックスに既定値として表示する文字列を記述します。いづれの項目も「”」(ダブルクォーテーション)で囲みます。内容を纏めると、「[メッセージ]をメッセージに表示し、[タイトル]をタイトルバーに表示し、テキストボックスには[テキストBOX]で指定した文字列を規定値として表示したインプットボックスを表示して下さい。」との意味になります。また、[タイトル]及び[テキストBOX]は省略する事ができます。

[記述例]:

InputBox("年齢を入力して下さい。", "年齢入力画面", "数字で入力して下さい。")

 

使い方

使い方について、具体的に説明していきます。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    '↓処理①
    Dim 年齢 As Variant
    '↓処理②
    年齢 = InputBox("年齢を入力して下さい。", "年齢入力画面", "数字で入力して下さい。")
    '↓処理③
    If (IsNumeric(年齢) = True) Then
        MsgBox 年齢
    Else
        MsgBox "年齢は数字で入力して下さい。", 16, "メッセージ"
    End If
End Sub

-------------------------------------------------

処理の流れは以下の通りとなります。

[処理①]:変数の定義をします
Dimによる変数の定義となります。変数名は「年齢」となり、入力できる値は「どんなデータでもセットできる(特に指定無し)」となります。
[処理②]:InputBox関数を使用して年齢を入力させます
InputBox関数を使用して年齢を入力させる画面を表示させます。メッセージは「年齢を入力して下さい。」となり、タイトルは「年齢入力画面」となります。また、テキストBOXには「数字で入力して下さい。」の内容が表示されます。実際に実行をすると、以下の画面が表示されます。

f:id:m_kbou:20190618102227p:plain

テキストBOXにデータ入力後『OK』ボタンをクリックすると、上記[処理①]で指定した変数:年齢にテキストBOXの入力内容がセットされます。
[処理③]:If文IsNumeric関数を使用した入力データの判定を行います
上記[処理②]で変数:年齢にセットした内容が数字なのか?否か?の判定をIf文IsNumeric関数を使って行います。セットした内容が数字の場合、入力した数字をMsgBoxで表示します。また、数字以外の場合、「年齢は数字で入力して下さい。 」のエラーコメントをMsgBoxで表示します。

[実行例]:

①テキストBOXに「20」の数字を入力して『OK』ボタンをクリックした場合、MsgBoxに「20」が表示されます。

f:id:m_kbou:20190618102333p:plain

f:id:m_kbou:20190618102346p:plain

②年齢を入力せずにテキストBOXの内容が初期値の「数字で入力して下さい。」のまま『OK』ボタンをクリックした場合、「年齢は数字で入力して下さい。」のコメントをMsgBoxで表示します。

f:id:m_kbou:20190618102255p:plain

f:id:m_kbou:20190618102317p:plain

InputBoxの具体的な使い方についての説明は以上です。

 

おわりに

今回は、InputBox関数の使い方について説明しました。VBA実行中にユーザーから文字列や数値を入力させるには、InputBoxを使う事が有効的で簡易的になります。是非有効に活用してみて下さい。