こんにちは!大阪市住之江区に拠点を置く会社『縁紡ぐ』の稲垣です。
当社は、Excel、ACCESS、RPAなどのシステム開発や既存ツールを使った業務効率化の提案、また、ITスキルアップのための教育に力を入れています。効率的なビジネス運営を目指している企業様、ITスキルの向上を図りたい企業や個人の方に、最適なご提案をさせていただきます。業務プロセスの改善とITスキルアップをサポートし、共に成長するパートナーでありたいと考えています。
【Excel VBA】インプットボックスの使い方
今回はインプットボックスの使い方について解説をします。
インプットボックスとは
インプットボックスとは、インプットボックス関数のことで、ユーザーへメッセージボックスでを表示し、入力した値を受取ることが出来る関数です。
インプットボックス関数を使えるようになると、ユーザーフォームでなくても簡単にユーザーから入力値を取得することができます。
インプットボックスは2種類ある
インプットボックスは、実は2種類あります。
InputBox
userName = InputBox( _
prompt:="氏名を入力してください", _
Title:="氏名入力", _
Default:="山田 花子", _
xpos:=0, _
Ypos:=0 _
)
Application.InputBox
'インプットボックスで名前を入力してもらう
userName = Application.InputBox( _
prompt:="氏名を入力してください", _
Title:="氏名入力", _
Default:="山田 花子" _
)
インプットボックス関数の各引数の使い方
インプットボックス関数には、引数を渡すことで色々できることがあります。
引数名 | 必須・オプション | データ型 | 説明 |
---|---|---|---|
Prompt | 必須 | String | ダイアログボックスに表示されるメッセージや質問です。 これはユーザーに対して何を入力すべきかを指示します。 |
Title | オプション | Variant | ダイアログボックスのタイトルバーに表示されるテキストです。 |
Default | オプション | Variant | テキストボックスに予め表示されるデフォルト値です。 |
Xpos Left | オプション | Variant | ダイアログボックスの左上隅のX座標を指定します。スクリーンの左端からの距離をピクセルで指定します。※Application.inputBoxでは無視されます |
Ypos Top | オプション | Variant | ダイアログボックスの左上隅のY座標を指定します。スクリーンの上端からの距離をピクセルで指定します。※Application.inputBoxでは無視されます |
HelpFile | オプション | Variant | ヘルプファイルのパスを指定します。HelpFile 引数が指定されている場合、ダイアログボックスにはヘルプボタンが表示されます。 |
Context | オプション | Variant | ヘルプファイル内の特定のヘルプトピックのコンテキストIDを指定します。HelpFile が指定されている場合にのみ有効です。 |
Type | オプション | Variant | 返されるデータの型を指定します。 この引数を省略すると、ダイアログ ボックスは文字列 (テキスト) を返します。 Application.Inputboxで利用可能 |
Prompt
インプットボックスで必須で渡さないといけないのが、Promptです。
ユーザー側に、「何を入力すべきなのか」を伝えるためのメッセージになります。
Title
ダイアログボックスのタイトルバーに表示されるテキストです。
Default
テキストボックスに予め表示されるデフォルト値です。
Left Top
Application.InputBoxでは、値は無視されます。
HelpFile Context
ヘルプファイルのパスを指定します。HelpFile
引数が指定されている場合、ダイアログボックスにはヘルプボタンが表示されます。
今回、動作を検証しましたが指定したPDFファイルを開くことが出来ませんでした。動作方法については、知っている方は、コメントをお願いします。
Type
Typeは、Application.Inputboxの時に、入力する型を指定することが出来ます。
値 | 説明 |
---|---|
0 | 数式 |
1 | 数値 |
2 | 文字列(テキスト) |
4 | 論理値(True or False) |
8 | セル参照(Range オブジェクト) |
16 | エラー値 |
64 | 値の配列 |
この中で、数値と文字列とセル参照ぐらいしか使うことは少ない気がします。
とくにエラー値を入力する場面は、想像できませんでした。
キャンセルボタン押下時の処理
VBAで何かを作成しているときは、キャンセルボタンを押下されたことで別処理や、絶対に入力してほしい場合は、入力を促すように処理を入れる必要があります。
なぜなら、InputBox、Application.Inputboxは、キャンセルと×ボンタンで消すことができないからです。
InputBoxの場合
InputBoxの場合、キャンセルを押下すると空文字が返ってきます。
入力されるまで続けてほしい場合
Sub testInput()
'変数の宣言
Dim result As Variant
'インプットボックス入力してもらう
Do
result = InputBox( _
Prompt:="年齢を入力してください", _
Title:="年齢入力" _
)
If result = "" Then
MsgBox "必ず入力してください"
End If
Loop While result = ""
End Sub
Application.Inputboxの場合
Application.Inputboxの場合、キャンセルされた場合、Falseが返ってきます。
入力されるまで続けてほしい場合
Sub testInput()
'変数の宣言
Dim result As Variant
'インプットボックス入力してもらう
Do
result = Application.InputBox( _
Prompt:="年齢を入力してください", _
Title:="年齢入力" _
)
If result = False Then
MsgBox "必ず入力してください"
End If
Loop While result = False
End Sub
稲垣
- Excel、ACCESSでのシステム開発が得意
- ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
- 自家焙煎するほどのコーヒー好き
- 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
- 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
- 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
- お客様にとって本当に良いことかを第一に考える人
コメント