更新日:、 作成日:
VBA InputBox 関数:入力した値を取得する
はじめに
Excel VBA マクロの InputBox 関数から入力した値を取得する方法を紹介します。
InputBox 関数は、インプットボックスに入力した文字列を返します。
説明やコメントなどをユーザーに入力させたいときに使用します。
InputBox 関数の引数と戻り値
InputBox(メッセージ)
インプットボックスの説明をメッセージに指定します。入力された値を返します。
InputBox(メッセージ, タイトル, 既定値)
インプットボックスのタイトルと既定値を指定できます。
引数「メッセージ」 | 画面の説明を指定します。 |
引数「タイトル」 | 省略できます。インプットボックスのタイトルを指定します。 |
引数「既定値」 | 省略できます。入力値の既定値を指定します。 |
戻り値の型 | 文字列型 (String) |
解説
インプットボックスを表示し、入力欄に入力した値を取得します。常に「OK」と「キャンセル」ボタンが表示されます。
[OK] ボタンをクリックするか Enter キーを入力したときに、入力された値を返します。
[閉じる] ボタンや [キャンセル] ボタンをクリックしたときは、空文字 "" を返します。
引数「既定値」には改行を含む文字列を指定できます。画面上は改行されていないように見えますが、[OK] ボタンをクリックすると改行された値を返します。
入力欄に改行した文字列を入力することはできません。貼り付けしたときは改行の前の文字までが貼り付けられます。改行したいなら、専用のフォームを作成する必要があります。または特定の文字 _ を置換して改行するなどルールを決めます。
入力欄には必ず文字列で入力します。数値や日付を入力したいなら、取得した値を Integer や Date 型に変換します。
引数「メッセージ」が改行された文字列なら、改行して説明を表示できます。改行するには vbCrLf と結合します。
引数「タイトル」を省略すると、タイトルにアプリケーション名 (Microsoft Excel など) が表示されます。
スポンサーリンク
使用例
InputBox 関数の使用例を紹介します。
OK かキャンセルを判定する
OK とキャンセルのどちらがクリックされたか判定します。
Dim s As String
s = InputBox("OK かキャンセルか")
If s = "" Then
Debug.Print(s) ' キャンセル
Else
Debug.Print(s) ' OK
End If
入力された値を取得する
画面に入力した値を取得します。
Dim s As String
s = InputBox("Tipsfound へようこそ" & vbCrLf & "このページは役に立ちましたか?")
Debug.Print(s) ' 入力した内容
' _ を改行する
s = Replace(s, "_", vbCrLf)
Debug.Print(s) ' _ を改行に置換
タイトルと既定値を指定する
タイトルと既定値を指定します。
Dim s As String
s = InputBox("メッセージ", "タイトル", "既定値")
Debug.Print(s) ' 入力した内容