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

アフィリエイト広告を利用しています。
QRコード
【QRコード】PC<-->スマホの切り替えにご利用ください
運営者・ポテ

いつもありがとうございます。

これは、ノンプログラマー向けのエクセルマクロVBA解説シリーズです。

本稿では、インプットボックス(InputBox)を操作する方法を解説いたします。

InputBoxは、VBAでユーザーから簡単に情報を取得するための便利な機能です。

この機能を使うと、ポップアップウィンドウが表示され、ユーザーが入力を行うことができます。

例えば、ユーザーに数値や文字列などのデータを入力させたい場合に利用され、ユーザーの入力値をプログラム内で活用できるようになります。

MsgBoxと並びユーザーとコミュケーションを行うために欠かせないツールです。

また、MsgBoxと同様に実装方法はシンプルです。

本稿ではこの InputBox の基本構文や具体例を解説いたします。

り尚、MsgBox に関してはこちらの記事で解説しておりますので、もしよければご覧ください。

>>MsgBoxの解説はこちら


ことばの意味
  • ノンプログラマー
    プログラミングを本職としない人たちのことです。
  • マクロ
    VBAを使って作成される「機能」のことです。
  • VBA
    Visusal Basic for Application の略で、プログラミング言語のことです。
関連記事
筆者の記事関連経験/資格
  • VBA使用経験 約20年
    製品開発・生産技術系のフィールドで、実務に使用するマクロを多数作成してきました。
  • Python 3 エンジニア認定基礎試験 合格
    一般社団法人Pythonエンジニア育成推進協会によって運営・認定されている民間資格で、経済産業省が定めたガイドライン「ITスキル標準(ITSS)」において、職種:ソフトウェアディベロップメント、専門分野:応用ソフトのレベル1に掲載されています。

VBAにおけるエクセルオブジェクト操作の全体像

VBAにおける「エクセルオブジェクトの操作」の全体像は以下の記事で解説しております。

本稿では「エクセルオブジェクトの操作」の一部である「メッセージボックス」を解説いたします。

VBAでインプットボックス(InputBox)を操作する方法

基本構文

インプットボックスの基本構文を以下に示します。

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

それぞれの引数の意味は下表のようになっています。

引数説明データ型省略可否
promptユーザーに表示されるメッセージです。入力を求めるための指示文です。String必須
titleInputBox ウィンドウのタイトルバーに表示される文字列です。String省略可
defaultテキストボックスに表示される既定値です。String省略可
xposInputBox ウィンドウの左端の位置を示す X 座標です。省略すると中央に配置されます。Double省略可
yposInputBox ウィンドウの上端の位置を示す Y 座標です。省略すると中央に配置されます。Double省略可
helpfileヘルプボタンをクリックしたときに表示されるヘルプファイルへのパスです。省略するとヘルプボタンは表示されません。String省略可
contextヘルプファイル内の特定のトピックを指定するためのコンテキスト番号です。これは、ユーザーがメッセージボックスのヘルプボタンをクリックしたときに表示されるヘルプトピックを決定するために使用されます。helpfile が指定されている場合に有効です。Integer省略可
InputBox関数の引数

ことばの意味

  • 引数・・・メソッドや関数、プログラムを制御するために渡す値やオブジェクトのことです。

具体例と解説

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プログラミングスキルアップのための参考情報

ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。

VBAプログラミングのスキルアップ

学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。



入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるより、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。

私は、迷った場合は、インプレス社の「いちばんやさしい」シリーズを購入することが多いです。

>>Amazon で VBA の書籍をでチェックする

>>楽天市場 で VBA の書籍をチェックする

>>Yahoo!ショッピングでVBAの書籍をチェックする


VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。



プログラミングの一般教養

「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。


こちらの記事でも紹介しております。もしよろしければご覧ください。

QRコード
【QRコード】PC<-->スマホの切り替えにご利用ください

コメントを残す

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