【簡単エクセル/Excel VBA マクロ】インプットボックス|InputBox|Excelオブジェクトの操作 #002


いつもありがとうございます!
皆さん、こんにちは。ご覧いただきありがとうございます。
“日々の業務にちょうどいい自動化を”──
業務改善アプリケーションの作成を行っている「ソフトデザイン工房」 です。
InputBoxは、VBAでユーザーから簡単に情報を取得するための便利な機能です。
この機能を使うと、ポップアップウィンドウが表示され、ユーザーが入力を行うことができます。
例えば、ユーザーに数値や文字列などのデータを入力させたい場合に利用され、ユーザーの入力値をプログラム内で活用できるようになります。
MsgBoxと並びユーザーとコミュケーションを行うために欠かせないツールです。
また、MsgBoxと同様に実装方法はシンプルです。
本稿ではこの InputBox の基本構文や具体例を解説いたします。
なお、MsgBox に関してはこちらの記事で解説しておりますので、もしよければご覧ください。
リンク
この記事が、あなたのVBAマクロの価値をさらに高める一助となれば幸いです。
VBAを活用して、自分自身や身近なコミュニティに合ったアプリケーションを作成し、仕事量は半分に、成果は2倍に──そんな未来を目指すあなたを応援しています。
VBAにおけるExcelオブジェクト操作の全体像
VBAにおける「Excelオブジェクトの操作」の全体像は以下の記事で解説しています。
この記事では「Excelオブジェクトの操作」の一部である「インプットボックス」を解説します。
VBAでインプットボックス(InputBox)を操作する方法

基本構文
インプットボックスの基本構文を以下に示します。
InputBox(prompt, [title], [default], [xpos], [ypos], [helpfile], [context])それぞれの引数の意味は下表のようになっています。
| 引数 | 説明 | データ型 | 省略可否 |
|---|---|---|---|
| prompt | ユーザーに表示されるメッセージです。入力を求めるための指示文です。 | String | 必須 |
| title | InputBox ウィンドウのタイトルバーに表示される文字列です。 | String | 省略可 |
| default | テキストボックスに表示される既定値です。 | String | 省略可 |
| xpos | InputBox ウィンドウの左端の位置を示す X 座標です。省略すると中央に配置されます。 | Double | 省略可 |
| ypos | InputBox ウィンドウの上端の位置を示す Y 座標です。省略すると中央に配置されます。 | Double | 省略可 |
| helpfile | ヘルプボタンをクリックしたときに表示されるヘルプファイルへのパスです。省略するとヘルプボタンは表示されません。 | String | 省略可 |
| context | ヘルプファイル内の特定のトピックを指定するためのコンテキスト番号です。これは、ユーザーがメッセージボックスのヘルプボタンをクリックしたときに表示されるヘルプトピックを決定するために使用されます。helpfile が指定されている場合に有効です。 | Integer | 省略可 |
具体例と解説
InputBox 関数の具体例とマクロ実行結果を以下に示します。
Sub Sample()
' ユーザー名を格納する変数を宣言
Dim user_name As String
' InputBoxを表示して名前を取得
user_name = InputBox("名前を入力してください", "名前入力", "マイケル")
' 入力された名前に基づいて処理を分岐
If user_name = "" Then ' 空入力またはキャンセルの場合
MsgBox "名前の入力がキャンセルされました。"
Else
MsgBox "こんにちは、" & user_name & "さん!"
End If
End Sub



解説します!
' ユーザー名を格納する変数を宣言
Dim user_name As Stringここでは変数の宣言を行っています。これにより変数 user_name は As 以降で指定したデータ型のデータを格納できるようになります。
' InputBoxを表示して名前を取得
user_name = InputBox("名前を入力してください", "名前入力", "マイケル")ここではインプットボックスを表示し、ユーザーに名前の入力を求めています。各引数は、基本構文通り、prompt、 [title]、 [default]の順で並んでいます。
| 引数 | 引数の値 | 説明 |
|---|---|---|
| prompt | "名前を入力してください" | ユーザーに表示されるプロンプト(指示文)です。 |
| title | "名前入力" | InputBoxのウィンドウタイトルに表示される文字列です。 |
| default | "マイケル" | InputBoxのテキストボックスに初期値として表示される文字列です。 |
ユーザーが名前を入力して「OK」をクリックすると、その入力値が変数 user_name に格納されます。
' 入力された名前に基づいて処理を分岐
If user_name = "" Then ' 空入力またはキャンセルの場合
MsgBox "名前の入力がキャンセルされました。"
Else
MsgBox "こんにちは、" & user_name & "さん!"
End Ifここでは上述のユーザーの入力値に応じて、処理を分岐しています。
空入力またはキャンセルの場合は、メッセージボックスで「名前の入力がキャンセルされました。」のメッセージが表示されます。
値が入力され「OK」がクリックされた場合は、メッセージボックスで「こんにちは&user_name(ここはユーザーが入力した値が表示される)」のメッセージが表示されます。

以上が、InputBoxの基本的な使い方です。ありがとうございました!
VBAスキルアップの参考情報
近年は、ChatGPTをはじめとするAIの登場によって、学習のスタイルが大きく変わりました。
分からないことがあれば、AIに尋ねれば答えがすぐに見つかる時代です。
とはいえ、AIを使いこなすには、自分自身の基本的な知識や理解力が欠かせません。
全体像をつかむためには、やはり書籍などで体系的に学んでおくことが今でも有効です。
そのうえでAIを活用すれば、自分の理解度に合わせた的確な解説や、応用のヒントを得ることができます。
「学んで基礎を築く → AIで補い発展させる」──このサイクルを重ねることで、VBAスキルは着実に高まっていくでしょう。
VBAのスキルアップ
VBAを学び始めるなら
入門書は、どれを選んでも大きな差はないように感じます。
どれを選ぶかに悩むことに時間をかけるよりも、まずは手頃な一冊を手に取って進めてみるのがおすすめです。
もし迷ったときには、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
基礎を超えて力をつけたいなら
私は上級者を目指していましたので、入門書にとどまらず、このような内容の濃い一冊を選んで学んでいました。
今は誰でもAIを活用できる時代になりましたが、上級者を目指す方にとっては、AIをより上手に活用するという意味でも、こうした本は今なお価値があります。
このレベルの本を一冊持っておくことに、損はないでしょう。
資格で能力を証明したいなら
VBAのプログラミング能力を客観的に示したい場合には「VBAエキスパート試験」があります。
特に「スタンダード」の方は上級者向けです。
あなたが社内業務の改善を行う立場であっても、VBAで作成したシステムをお客様に納める立場であっても、この資格は信頼や安心につながるでしょう。
以下の公式テキストが販売されています。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。
これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
今はAIにコードを尋ねれば、答えが返ってくる時代です。
しかし、この本からは「コード」以上に、プログラミングに向き合う姿勢や考え方を学ぶことができるでしょう。
こちらの記事でも紹介しています。もしよろしければご覧ください。
【初心者歓迎】無料相談受付中

いつもありがとうございます!
限られた時間をより良く使い、日本の生産性を高めたい──
みんなの実用学を運営するソフトデザイン工房では、業務整理や業務改善アプリケーション作成のご相談を承っております。
お気軽にご相談ください。
こちらの記事でも紹介しております。
おわりに


ご覧いただきありがとうございました!
本稿では、「インプットボックスを操作する方法」を解説しました。
お問い合わせやご要望がございましたら、「お問い合わせ/ご要望」フォームまたはコメント欄よりお知らせください。
この記事が皆様のお役に立てれば幸いです。
なお、当サイトでは様々な情報を発信しております。よろしければトップページもあわせてご覧ください。



