- Home ›
- Excel VBA入門 ›
- ダイアログ ›
- HERE
入力ボックス付きダイアログを表示
今までのダイアログでは事前に設定したボタンを押してもらうしかできませんでしたが、入力用のテキストボックスを表示し、ユーザーに値を入力してもらうダイアログを表示することも可能です。
構文は下記のようになっています。
Dim ans As String str = InputBox(表示文字列, タイトル文字列, デフォルト値)
ダイアログに表示される文字列とタイトルはMsgBoxと同じですが、入力用テキストボックスにデフォルトで表示される文字列を指定します。またInputBoxを使った場合にはボタンは「OK」と「キャンセル」の2つが表示されます。
またユーザーがテキストボックスに入力した文字は、「OK」ボタンが押された時にString型の値として取得できます。「キャンセル」ボタンやウィンドウの右上にある「×」ボタンでダイアログを閉じた場合には空の文字列("")が戻ってきます。
例えば次のようになります。
Sub テスト() Dim ans As String ans = InputBox("お名前は?", "年齢確認", "") If ans <> "" Then Range("A1").Value = ans End If End Sub
何か入力が行われて「OK」ボタンが押された時だけ入力された値をセルに表示します。
サンプルプログラム
では実際に簡単なプログラムで試してみます。
Sub テスト() Dim ans As String ans = InputBox("お名前は?", "年齢確認", "") If ans <> "" Then Range("A1").Value = ans End If End Sub
上記のマクロを実行すると次のようになります。
名前を入力するためのテキストボックスが表示されますので、適当な値を入力して「OK」ボタンを押して下さい。
すると入力された値がセルに表示されます。
( Written by Tatsuo Ikura )