入力ボックス付きダイアログを表示

広告

今までのダイアログでは事前に設定したボタンを押してもらうしかできませんでしたが、入力用のテキストボックスを表示し、ユーザーに値を入力してもらうダイアログを表示することも可能です。

構文は下記のようになっています。

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」ボタンが押された時だけ入力された値をセルに表示します。

サンプルプログラム

では実際に簡単なプログラムで試してみます。

testdialog5.bas

Sub テスト()

    Dim ans As String
    ans = InputBox("お名前は?", "年齢確認", "")

    If ans <> "" Then
        Range("A1").Value = ans
    End If

End Sub

上記のマクロを実行すると次のようになります。

ダイアログテスト

名前を入力するためのテキストボックスが表示されますので、適当な値を入力して「OK」ボタンを押して下さい。

ダイアログテスト

すると入力された値がセルに表示されます。

ダイアログテスト

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)