教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】InputBox関数の使い方がわからないです。教えて!

f:id:m_kbou:20200420122905p:plain

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

 

 

構文

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

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

[説明]:

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

[記述例]:

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

 

使い方

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

[プログラミング例]:

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で表示します。また、数字以外の場合、「年齢は数字で入力して下さい。 」のエラーコメントを表示します。

f:id:m_kbou:20210305070617p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例①]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210305070636p:plain

②InputBoxが表示されます。

f:id:m_kbou:20210305070701p:plain

③テキストBOXに「20」の数字を入力し、<OK>ボタンをクリックします。

f:id:m_kbou:20210305070735p:plain

④結果は以下の様に表示されます。MsgBoxで「20」が表示されます。

f:id:m_kbou:20210305070748p:plain

実行例①についての説明は以上です。

[実行例②]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210305070636p:plain

②InputBoxが表示されるので、テキストBOXの内容が初期値の「数字で入力して下さい。」のまま<OK>ボタンをクリックします。

f:id:m_kbou:20210305070701p:plain

③結果は以下の様に表示されます。MsgBoxで「年齢は数字で入力して下さい。」のコメントを表示します。(※数値以外を入力したため、エラーメッセージが表示されました。)

f:id:m_kbou:20210305070841p:plain

実行例②についての説明は以上です。

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

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