Excel VBAでユーザーからの入力を受け取る方法として、InputBox関数は非常に有用です。この記事では、InputBox関数の基本的な使い方から応用例、そしてオリジナルのサンプルコードまでご紹介します。この記事を読むことで、InputBox関数を活用するための基本知識が身につきます。
InputBox関数とは?
InputBox関数はExcel VBAでよく使用される関数の一つです。この関数を使用すると、ダイアログボックスにメッセージとテキストボックスが表示され、ユーザーが入力した文字列をプログラム内で使用することができます。特に、マクロの途中でユーザーの入力によって処理を変更したい場合に非常に役立ちます。
関数の基本構文
InputBox関数の基本形は以下のようになります。
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
この構文において、角括弧([]
)で囲まれた部分はオプションです。
設定項目 | 必須/オプション | 説明 | 例 |
---|---|---|---|
prompt | 必須 | ダイアログボックスに表示するメッセージです。 | “何か入力してください。” |
title | オプション | ダイアログボックスのタイトルバーに表示されるテキストです。 | “ユーザー入力” |
default | オプション | テキストボックスに最初から表示される文字列です。ユーザーが何も入力しなかった場合、この値が返されます。 | “初期文字” |
xpos | オプション | ダイアログボックスのX座標です。通常はこのオプションは必要ありません。 | 100 |
ypos | オプション | ダイアログボックスのY座標です。通常はこのオプションは必要ありません。 | 100 |
サンプルコードとその解説
基本的なInputBoxの使用例
Dim strIn As String
strIn = InputBox("何か入力してください。")
このコードは非常にシンプルです。InputBox関数を呼び出し、ユーザーからの入力をstrIn
変数に格納しています。
タイトルと初期値を設定した例
Dim strIn As String
strIn = InputBox("何か入力してください。", "ユーザー入力", "初期文字")
この例では、ダイアログボックスのタイトルと、テキストボックスの初期値も設定しています。
入力がなかった場合の処理
Dim strIn As String
strIn = InputBox("何か入力してください。", "ユーザー入力", "初期文字")
If strIn = "" Then
MsgBox "何も入力されませんでした。"
End If
この例では、何も入力されなかった場合にメッセージボックスを表示しています。
数値入力の確認
Dim strIn As String
Dim num As Double
strIn = InputBox("数値を入力してください。", "数値入力")
If IsNumeric(strIn) Then
num = CDbl(strIn)
Else
MsgBox "数値を入力してください。"
End If
この例では、入力された値が数値かどうかを確認しています。数値でない場合は、エラーメッセージを表示します。
InputBox関数に関するFAQ
Q:InputBox関数はどのような場面で使われますか?
A:InputBox関数は、Excel VBAプログラミングにおいて、ユーザーから直接テキスト入力を受け取る場合に使用されます。例えば、特定の処理のパラメータを動的に変更したいときや、ユーザーからのフィードバックを取得したい場合などに便利です。
Q:InputBox関数の基本的な構文は何ですか?
A:InputBox関数の基本的な構文は以下のようになります。
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
ここで、prompt
は必須の引数で、ダイアログボックスに表示されるメッセージです。その他の引数はオプションです。
Q:初期値を設定する方法は?
A:default
引数を使用して、テキストボックスに表示される初期値を設定できます。例えば、InputBox("何か入力してください。", "ユーザー入力", "初期文字")
とすると、テキストボックスには「初期文字」と表示されます。
Q:入力された値が数値かどうかを確認する方法は?
A:VBAのIsNumeric
関数を使用して、入力された値が数値かどうかを確認できます。例えば、If IsNumeric(strIn) Then
というように使用します。
Q:InputBoxでキャンセルが押された場合、どうなりますか?
A:InputBoxでキャンセルが押された場合、関数は空の文字列(””)を返します。この挙動を利用して、If strIn = "" Then
といった条件分岐でキャンセルが押されたかどうかを判断できます。
Q:ダイアログボックスの位置を変更する方法は?
A:xpos
とypos
引数を使用して、ダイアログボックスの表示位置を指定できます。ただし、通常はこのオプションは必要ありません。
Q:InputBox関数で複数行のテキストを入力できますか?
A:標準のInputBox関数では、複数行のテキストを直接入力することはできません。複数行のテキストを取得する必要がある場合は、独自のユーザーフォームを作成する方法があります。
Q:InputBox関数は他のOfficeアプリケーションでも使えますか?
A:はい、InputBox関数はExcelだけでなく、WordやAccessなどの他のOfficeアプリケーションでも使用できます。ただし、使用するアプリケーションによっては、利用できる引数が異なる場合があります。
Q:InputBox関数でパスワード入力は可能ですか?
A:標準のInputBox関数では、パスワード入力のように文字をマスクする機能は提供されていません。このような場合は、独自のユーザーフォームを作成する必要があります。
関連動画
まとめ
InputBox関数は、Excel VBAで非常に頻繁に使用される便利な関数です。この記事で紹介した各設定項目とサンプルコードを理解し、活用することで、より効率的なVBAプログラミングが可能になります。是非ともこの知識を活かして、日々の業務に役立ててください。
Excelのショートカットキーの練習
当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。
※推奨ブラウザ Google Chrome