【ExcelVBA】入力ボックスを表示したい InputBoxの使い方

こんなあなたにおすすめ

・Excel VBAで入力ボックスを表示したい

Excel VBAで入力ボックスを表示したいことがあると思います。

そんなときは、InputBoxを使うことで、入力ボックスを表示することができます。

今回は、InputBoxについて解説します。

入力ボックスを表示したい

InputBoxを使うことで、入力ボックスを表視することができます。

基本的な使い方は、以下の通りです。

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

各パーツについての説明は以下の通りです。

パーツ 必須
省略可能
説明
prompt 必須 ダイアログ ボックスに表示する文字列を指定する。 
最大で約 1024 文字使用可能です。
title 省略可能 ダイアログ ボックスのタイトルを指定する。
省略した場合、アプリケーションの名前が表示される。
default 省略可能 テキストボックスにあらかじめ入力しておく文字列を指定する。
省略した場合、テキスト ボックスは空の状態で表示される。
xpos 省略可能 画面の左端からダイアログ ボックスの左端までの距離を指定する。
省略した場合、水平方向の中央に表示される。
ypos 省略可能 画面の上部からダイアログ ボックスの上端までの距離を指定する。
省略した場合、画面を約 1 / 3 下に下がった位置に表示される。
helpfile 省略可能 ヘルプファイルを指定する。
helpfile を指定する場合は、context も必ず指定する必要があります。
context 省略可能 ヘルプファイル内のページを示すコンテキストidを指定する。
context を指定する場合は、helpfile も必ず指定する必要があります。

promptのみを指定

promptは、入力を促すようにする文字列のことです。
ユーザーにどうしてほしいのかを入力すればOKです。

Sub test1()

    Dim tmp As String
    
    tmp = InputBox("名前を入力してください")
    
    Range("A1") = tmp
    
End Sub

↓InputBoxを表示した結果

↓InputBoxに”山田 太郎”と入力した結果

titleを指定

titleを指定すると、ダイアログボックスのタイトルが指定した文字列になります。
指定しない場合、アプリケーションの名前が表示されます。

Sub test2()

    Dim tmp As String
    
    tmp = InputBox("名前を入力してください", "名前の確認")
    
    Range("A1") = tmp

End Sub

↓titleを指定したときのInputBoxの表示結果

defaultを指定

defaultを指定すると、初期値としてテキストボックスに入力されます。
指定しない場合、テキストボックスは空の状態です。

Sub test3()

    Dim tmp As String
    
    tmp = InputBox("名前を入力してください", "名前の確認", "山田 花子")
    
    Range("A1") = tmp

End Sub

↓defaultを指定したときのInputBoxの表示結果

xpos, yposを指定

xpos、yposを指定することで、指定した位置にダイアログボックスを表示することができます。
指定しない場合、横は中央、縦は画面上部から1/ 3下に配置されます。

Sub test4()

    Dim tmp As String
    
    tmp = InputBox("名前を入力してください", "名前の確認", _
                   "山田 花子", 1000, 3000)
    
    Range("A1") = tmp

End Sub

↓xpos, yposを指定しないときのInputBoxの表示結果

↓xpos, yposを指定したときのInputBoxの表示結果

helpfileを指定

helpfileを指定すると”ヘルプ”ボタンが表示されます。

Sub test5()

    Dim tmp As String
    
    tmp = InputBox("名前を入力してください", "名前の確認", _
                   "山田 花子", 1000, 3000, "demo.hlp", 10)
    
    Range("A1") = tmp

End Sub

↓helpfileを指定しないときのInputBoxの表示結果

defaultに改行を入れた場合

defaultに改行を入れても、InputBoxのテキストボックスは1行のため、見た目は変わりません。
ただ、改行コードは含まれているため、出力したときに改行されます。

Sub test6()

    Dim tmp As String
    
    tmp = InputBox("住所を入力してください", "住所の確認", _
                   "東京都" & vbCrLf & "新宿区")
    
    Range("A1") = tmp

End Sub

↓defaultで改行を含めたときのInputBoxの表示結果

↓InputBoxでそのままOKを押したときの結果

まとめ

ここまで、入力ボックスの表示方法について解説しました。

InputBoxを使うことで簡単に表示することができます。
ユーザーに値を入力してほしいというときに使ってみてください。

セルに値を入力する方法については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】セルに値を入力 / 取得する方法

演算子については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】演算子の使い方

Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし

【Excelについて学びたい方】
Excel 最強の教科書[完全版]
【Excel VBAについて学びたい方】
Excel VBA 脱初心者のための集中講座
エンジニアを目指すなら、TechAcademy!
オンラインスクール受講者数No.1!

・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!

・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!

・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!

・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!

無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です