コンテンツ
Excel用VBAの "入力ボックス"機能について学ぶことは、このツールでプログラムを作成する際の最初のステップです。 「入力ボックス」は、引数を1つだけ取るので、VBAプログラムの手動作成を簡単に紹介するものですが、ユーザー入力を受け取るという重要な機能を果たします。 "MsgBox"関数についても学ぶことを検討してください。その役割はユーザーにメッセージを表示することであり、 "Input Box"を補完するものであるからです。
ダイアログボックスは、ユーザーに何が起こるのかを知らせます。 (Stockbyte / Stockbyte / Getty Images)
目的
「入力ボックス」機能は、データを入力してそれを受け取るように促します。例えば、「入力ボックス」は、エクセルワークシートの「誕生日リスト」と呼ばれるテーブルにそれを格納するためにその人の年齢を入力するようにユーザに促し得る。
引数
「入力ボックス」はいくつかの引数を取りますが、そのうちの1つのみが必要です。ユーザーにデータの入力を促すテキストです。オプションの引数には、ダイアログボックスのタイトルとデフォルトの引数があります。 "Xpos"と "Ypos"引数を使ってボックスを特定の位置に配置することができます。
戻り値
"InputBox"はテキスト文字列を返します。通常、これを受け取るには変数を宣言する必要があります。この文は、2つの形式のうちの1つをとることができます。 1つ目は値の型を指定しません(たとえば、 "Dim value Return"と入力するか、 "Dim value Return String"型の宣言で変数の型を指定できます)。一般的に、たとえば "String"変数に数値を入れようとしたときなどに、VBAがタイプ関連のエラーを取り込めるように、より具体的なタイプを使用することをお勧めします。
サンプルプログラム
「入力ボックス」とExcelを統合したサンプルプログラムを試してください。 Excelの[開発者]タブの[Visual Basic]ボタンをクリックして、VBAプログラミング環境を開きます。次のコードをコピーしてください。
パブリックSub GetEmailAdr()文字列としてのstr_emailを暗くする(InStr(str_email、 "@")= 0)str_email = InputBox( "有効な電子メールアドレスを入力してください。")ループ範囲( "A1")= str_email End Sub
コードをウィンドウに貼り付けて、 "F5"を押してプログラムを実行します。このプログラムはユーザー入力を促し、それに対して簡単なチェックを行い、有効であれば戻り値をセルに入れます。それ以外の場合、プログラムはユーザーに別の値を要求します。
代替手段と利点
「入力ボックス」は、ユーザー入力をExcelに取り込むためのいくつかの方法のうちの1つです。また、ワークシートセルまたは「テキストボックス」コントロールを使用してそれをキャプチャすることもできます。入力ボックスはテキスト入力をサポートしているため、「はい/いいえ」の質問には最適な選択肢ではありません。ただし、この機能の利点の1つは、他のVBAコントロールとは異なり、使用するための特別なフォームを作成する必要がないことです。たとえば、リストボックスコントロールには、作成する必要があるユーザーフォーム、またはコントロールがスペースを占有するワークシートが必要です。 「入力ボックス」はスペースを取らないでしょう:それは現れます、それはユーザー入力を受け取ります、そしてそれは消えます、そしてそれは非常に慎重です。