【簡単Excelマクロ・VBA】インプットボックス|InputBox|Excelオブジェクトの操作 #002
いつもありがとうございます。
ノンプログラマー向け「Excelマクロ・VBA解説シリーズです。
本稿では、インプットボックス(InputBox)を操作する方法を解説いたします。
InputBoxは、VBAでユーザーから簡単に情報を取得するための便利な機能です。
この機能を使うと、ポップアップウィンドウが表示され、ユーザーが入力を行うことができます。
例えば、ユーザーに数値や文字列などのデータを入力させたい場合に利用され、ユーザーの入力値をプログラム内で活用できるようになります。
MsgBoxと並びユーザーとコミュケーションを行うために欠かせないツールです。
また、MsgBoxと同様に実装方法はシンプルです。
本稿ではこの InputBox の基本構文や具体例を解説いたします。
り尚、MsgBox に関してはこちらの記事で解説しておりますので、もしよければご覧ください。
ことばの意味
- ノンプログラマー
プログラミングを本職としない人たちのことです。 - マクロ
VBAを使って作成される「機能」のことです。 - VBA
Visusal Basic for Application の略で、プログラミング言語のことです。
関連記事
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の基本的な使い方です。ありがとうございました。
おわりに
ご覧いただきありがとうございました。
本稿では、「Excelオブジェクトの操作」の中の「インプットボックスを操作する方法」を解説いたしました。
お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。
皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。
なお、当サイトでは様々な情報を発信しております。もしよろしければ、トップページもご覧いただけると幸いでございます。
VBAプログラミングスキルアップのための参考情報
ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。
VBAプログラミングのスキルアップ
学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。
入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるよりは、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。
甲乙つけがたい場合、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
\チェックしてみよう/
\チェックしてみよう/
\チェックしてみよう/
VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
こちらの記事でも紹介しております。もしよろしければご覧ください。