VBA:インプットボックス

目次

VBA インプットボックスの基本

インプットボックスの概要と基本構文

VBAでのインプットボックスは、ユーザーから情報を入力してもらうために使用される便利なツールです。基本的な構文は Application.InputBox です。この関数は、ユーザーに情報入力を求めるダイアログボックスを表示し、その入力を変数に格納するために使います。

例えば、Dim userInput As String userInput = Application.InputBox("名前を入力してください") というコードは、ユーザーに名前の入力を求めるダイアログボックスを表示し、入力された名前を変数 userInput に格納します。

InputBox ( prompt , [title] , [default] )

promptインプットボックスにメッセージとして表示される文字列
title省略可能。インプットボックスのタイトルバーに表示される文字列
default省略可能。インプットボックスに初期値として表示する文字列
パラメータ

インプットボックスの引数とその使い方

インプットボックスにはいくつかの引数があり、それぞれ特定の機能を持っています。最も重要な引数は Prompt(表示するメッセージ)、Title(ダイアログボックスのタイトル)、Default(初期表示されるデフォルトの入力値)です。例えば、Application.InputBox("年齢を入力してください", "年齢入力", "20") というコードは、デフォルトで「20」と表示される「年齢入力」というタイトルのダイアログボックスを作成します。

ダイアログの表示位置とタイプの設定

インプットボックスでは、ダイアログの表示位置を指定することもできますが、通常は中央に表示されるので、特に指定する必要はありません。また、Type 引数を使用することで、入力されるデータのタイプ(数値、文字列など)を制限することができます。これは、特定の形式の入力のみを許可したい場合に特に役立ちます。たとえば、Application.InputBox("値を入力してください", Type:=1) は数値のみの入力を受け付けるダイアログボックスを表示します。

hideharu
VBAでインプットボックスを使うときは、ユーザーの入力を効果的に受け取れるんだね。基本から応用までしっかり覚えれば、色々な場面で役立つよ!

VBA インプットボックスの応用

キャンセル処理と入力値の検証

ユーザーがインプットボックスでキャンセルボタンを押すと、戻り値として「False」が返されます。この挙動を利用して、キャンセルされた場合の特定の処理を行うことができます。例えば、If userInput = False Then MsgBox "キャンセルされました" のようなコードは、ユーザーがキャンセルボタンを押した場合にメッセージボックスを表示します。

パスワード入力時のアスタリスク表示

VBAの標準インプットボックスでは、入力された値をアスタリスクで隠すことはできません。そのため、パスワードなどの機密情報の入力には適していません。このような場合は、VBAのユーザーフォームを使用して、アスタリスク表示が可能な入力フォームを作成することが推奨されます。

サンプルコード

VBAでのインプットボックスの使用方法を理解するために、簡単なサンプルコードを以下に示します。このコードは、ユーザーに名前の入力を求め、入力された名前をメッセージボックスで表示します。

Sub InputBoxExample()
    ' 変数の宣言
    Dim userName As String

    ' インプットボックスの表示
    userName = InputBox("お名前を入力してください", "名前の入力")

    ' 入力がなかった場合の処理
    If userName = "" Then
        MsgBox "入力がありませんでした。", vbExclamation, "入力エラー"
    Else
        ' 入力された名前をメッセージボックスで表示
        MsgBox "こんにちは、" & userName & "さん!", vbInformation, "挨拶"
    End If
End Sub

このコードの解説:

  1. 最初に、userNameという変数を宣言します。これはユーザーからの入力を格納するために使用します。
  2. InputBox関数を用いてユーザーに名前の入力を求めます。この関数は、入力された文字列を返します。
  3. ユーザーが何も入力せずにOKボタンを押すか、キャンセルボタンを押した場合、userNameは空の文字列(“”)になります。その場合、「入力がありませんでした。」というメッセージボックスが表示されます。
  4. ユーザーが名前を入力した場合、その名前を使って挨拶するメッセージボックスが表示されます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次