- Home ›
- Excel VBA入門 ›
- ダイアログ
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
このプログラムを実行するとテキストボックスが設置されたダイアログボックスが表示されます。ユーザーがテキストボックスに名前を入力し、「OK」ボタンをクリックすると、入力された名前が C2 セルに代入されます。
テキストボックスに初期値を設定する
InputBox
関数を使用するとテキストボックスが設置されたダイアログボックスを作成することができますが、 3 番目の引数を指定することでテキストボックスに初期値を設定することができます。
次のサンプルを見てください。
Option Explicit Sub InputBox関数() Dim ans As String Dim old As String old = Range("C2").Value ans = InputBox("名前を変更してください", , old) End Sub
C2 セルに既に入力されている名前を取得し、 InputBox
関数の 2 番目の引数に初期値として指定しています。このプログラムを実行すると、ダイアログが表示されて、テキストボックスに初期値が表示されていることが確認できます。
-- --
Excel VBA を使って InputBox 関数を使った入力ボックス付きのダイアログボックスを表示する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。