InputBox関数を使った入力ボックス付きのダイアログボックスの表示

InputBox 関数は Excel VBA で用意されている関数の一つで、テキストボックスが設置されたダイアログボックスを表示してユーザーに直接テキストを入力してもらうことができます。ここでは Excel VBA を使って InputBox 関数を使った入力ボックス付きのダイアログボックスを表示する方法について解説します。

(Last modified: )

InputBox関数の定義と使い方

InputBox 関数の書式は次のように定義されています。

InputBox(prompt,[title],[default],[xpos],[ypos],[helpfile,context])

1 番目の引数にダイアログボックスに表示する文字列を指定します。

省略可能な 2 番目の引数にダイアログボックスのタイトルバーに表示される文字列を指定します。省略した場合はアプリケーションの名前が表示されます。

省略可能な 3 番目の引数にダイアログボックスに表示されるテキストボックスにデフォルトで表示するテキストを指定します。省略した場合は何も表示されません。

省略可能な 4 番目と 5 番目の引数には、画面の左端からダイアログボックスの左端までの距離、および画面の上端からダイアログボックスの上端までの距離をそれぞれ指定します。単位は twip です。省略した場合は画面中央に表示されます。

省略可能な 6 番目の引数と 7 番目の引数にはダイアログボックスでヘルプを表示する場合に使用します。

InputBox 関数ではダイアログボックスを表示すると「OK」ボタンと「キャンセル」ボタンが表示されます。「OK」ボタンがクリックされると戻り値としてユーザーがテキストボックスに入力した文字列を取得します。テキストボックスに入力可能な文字は最大 255 文字で、取得されるときに 254 文字に切り捨てられます。

「キャンセル」ボタンがクリックされると、テキストボックスに入力されているかどうかに関わらず、長さが 0 の文字列 "" を取得します。

次の例を見てください。

Dim ans As String
ans = InputBox("名前を入力してください")

このプログラムを実行するとダイアログボックスを表示し、 1 番目の引数に指定した文字列を表示します。テキストボックスが表示されるので、ユーザーがテキストを入力し「OK」ボタンをクリックすると、入力されたテキストを戻り値として取得できます。

なお Inputbox 関数を使ったダイアログボックスの場合でも、表示される文字列を途中で改行することができます。詳しい手順は「ダイアログボックスに表示されるテキストを改行する」を参照されてください。

サンプルコード

それでは簡単なサンプルを作成して試してみます。

Option Explicit

Sub InputBox関数()
    Dim ans As String
    ans = InputBox("名前を入力してください")

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

InputBox関数の定義と使い方(1)

このプログラムを実行するとテキストボックスが設置されたダイアログボックスが表示されます。ユーザーがテキストボックスに名前を入力し、「OK」ボタンをクリックすると、入力された名前が C2 セルに代入されます。

InputBox関数の定義と使い方(2)

InputBox関数の定義と使い方(3)

InputBox関数の定義と使い方(4)

テキストボックスに初期値を設定する

InputBox 関数を使用するとテキストボックスが設置されたダイアログボックスを作成することができますが、 3 番目の引数を指定することでテキストボックスに初期値を設定することができます。

次のサンプルを見てください。

Option Explicit

Sub InputBox関数()
    Dim ans As String
    Dim old As String
    
    old = Range("C2").Value
    
    ans = InputBox("名前を変更してください", , old)
End Sub

テキストボックスに初期値を設定する(1)

C2 セルに既に入力されている名前を取得し、 InputBox 関数の 2 番目の引数に初期値として指定しています。このプログラムを実行すると、ダイアログが表示されて、テキストボックスに初期値が表示されていることが確認できます。

テキストボックスに初期値を設定する(2)

-- --

Excel VBA を使って InputBox 関数を使った入力ボックス付きのダイアログボックスを表示する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。