Excel VBA 入門講座

Excel VBA Tips Excel VBA 入門講座

インプットボックス(InputBox)

マクロ実行中にユーザーから値を受け取るときはインプットボックス(InputBox関数)が便利です。 インプットボックス(InputBox関数)は、引数に指定した文字列を表示して、ユーザーが入力できるダイアログボックス を開きます。インプットボックス(InputBox関数)の戻り値は文字列です。受け取る変数は、原則として文字列型を指定します。 また、InputBox関数では[キャンセル]ボタンをクリックされると空白("")を返します。

構文
InputBox ( prompt , title , default )
promptインプットボックスにメッセージとして表示される文字列
title省略可能。インプットボックスのタイトルバーに表示される文字列
default省略可能。インプットボックスに初期値として表示する文字列

Sub CheckInput()

    Dim strData As String

    strData = InputBox("入力してください")
    
    If strData = "" Then
        MsgBox ("未入力またはキャンセルボタンをクリックしました")
    ElseIf IsNumeric(strData) Then
        MsgBox ("数値が入力されました")
    Else
        MsgBox ("文字列が入力されました")
    End If
    
End Sub
実行結果
インプットボックス1

以下タイトル、初期値を指定したインプットボックス(InputBox関数)のサンプルコードです、


Sub CheckInput()

    Dim strData As String

    strData = InputBox("数値入力してください", "入力チェック", 0)
    
    If strData = "" Then
        MsgBox ("未入力またはキャンセルボタンをクリックしました")
    ElseIf IsNumeric(strData) Then
        MsgBox ("数値が入力されました")
    Else
        MsgBox ("文字列が入力されました")
    End If
    
End Sub
実行結果
インプットボックス2

上記のサンプルコードではインプットボックスが空白な場合と[キャンセル]ボタンをクリックした場合と区別がつきません。もし処理を分けたい場合はApplicationオブジェクトのInputBoxメソッドを使用します。

構文
object.InputBox( prompt , title , default )
objectApplicationオブジェクト
promptインプットボックスにメッセージとして表示される文字列
title省略可能。インプットボックスのタイトルバーに表示される文字列
default省略可能。インプットボックスに初期値として表示する文字列

Sub CheckInput()

    Dim strData As String

    strData = Application.InputBox("数値入力してください", "入力チェック", 0)

    If strData = "False" Then
        MsgBox ("キャンセルされました")
    ElseIf strData = "" Then
        MsgBox ("未入力です")
    ElseIf IsNumeric(strData) Then
        MsgBox ("数値が入力されました")
    Else
        MsgBox ("文字列が入力されました")
    End If

End Sub
Excel VBA Tips Excel VBA 入門講座 TOP