インプットボックス(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
実行結果 |
|
以下タイトル、初期値を指定したインプットボックス(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
実行結果 |
|
上記のサンプルコードではインプットボックスが空白な場合と[キャンセル]ボタンをクリックした場合と区別がつきません。もし処理を分けたい場合はApplicationオブジェクトのInputBoxメソッドを使用します。
構文 |
object.InputBox( prompt , title , default ) |
object | Applicationオブジェクト |
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