VBA|VBAで入力ボックスを表示する方法(InputBox)

エクセルVBA VBAのユーザーフォーム



VBAで入力ボックスを使うには、InputBoxを使います。

InputBoxを使うと文字や数値の入力はもちろん、セル選択もできます。

じつはVBAで使用するInputBoxには2種類あるのです。

今回は、InputBoxを使って入力ボックスを表示する方法や2種類のInputBoxの違いについて説明します。



VBAで入力ボックスを表示させる方法

VBAやExcelの入力ボックスというと、以下のものがあります。

これは、InputBoxを使って表示させます。

InputBoxを使って文字入力やセル選択をすることができます。

InputBoxには2種類ある

じつは、VBAにはInputBoxが2種類あります。

InputBox関数と、ApplicationオブジェクトのInputBoxメソッドです。

それぞれの入力ボックスについて説明します。

InputBox関数

InputBox関数は、VBAに用意されている関数で、入力ボックスに入力した文字列を返すものです。

InputBox関数

InputBox(Prompt, [Title], [Default])

日本語訳すると、以下のようになります。

InputBox(表示文字列, タイトル, 入力欄の規定値)

Prompt : メッセージとして表示する文字列です。

Title (省略可): タイトルバーに表示する文字列です。

Default (省略可): 入力欄に表示しておく規定値を指定します。

Sub InputBox関数()
    Dim hensu As String
    hensu = InputBox("メッセージ", "タイトル", "入力欄の規定値")
    Cells(1, 1) = hensu
End Sub

実行すると、入力ボックスが表示されます。入力ボックスに文字列「バナナ」を入力すると、セルA1に「バナナ」が表示されます。

ちなみにInputBox関数では、「キャンセル」をクリックすると「長さ0の文字列(””)」が返ります。

ApplicationオブジェクトのInputBoxメソッド

ApplicationオブジェクトのInputBox メソッドは、入力できるデータの種類を指定して入力することができます。

指定できるデータの種類は、文字列の他に数式、数値、論理値(TrueまたはFalse)、セル参照、エラー値、数値配列です。

ApplicationオブジェクトのInputBoxメソッド

Application.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

日本語訳すると、以下のようになります。

Application.InputBox(表示文字列, タイトル, 入力欄の規定値, ボックスのX座標の表示位置, ボックスのY座標の表示位置, 使用するヘルプファイル名, ヘルプファイル内のコンテキストID, データ型)

Prompt : メッセージとして表示する文字列です。

Title (省略可): タイトルバーに表示する文字列です。

Default (省略可): 入力欄に表示しておく規定値を指定します。

Left (省略可): 画面の左上隅を基準として、入力ボックスの表示位置のX座標を指定します。

Top (省略可): 画面の左上隅を基準として、入力ボックスの表示位置のY座標を指定します。

HelpFile (省略可): 入力ボックスで「ヘルプ」を使うときに、使用するヘルプファイルを指定します。

HelpContextID (省略可): 上記のヘルプファイルのpコンテキストIDを指定します。

Type (省略可): 返されるデータの型を指定します。

データの型
数式
数値
文字列(テキスト)
論理値(TrueまたはFalse)
セル参照(Rangeオブジェクト)
16 「#N/A」などのエラー値
64 数値配列
Sub inputboxメソッド()
    Dim hensu As String
    hensu = Application.InputBox(Prompt:="メッセージ", _
                                Title:="タイトル", _
                                Default:="規定値", _
                                Type:=2)
    Cells(1, 1) = hensu
End Sub

実行すると、入力ボックスが表示されます。入力ボックスに文字列「バナナ」を入力すると、セルA1に「バナナ」が表示されます。

インプットボックスでセル参照をする方法

インプットボックスを表示させたとき、直接エクセルシート上でセル参照をするサンプルコードを紹介します。

インプットボックスが表示され、セル上の値を直接クリックで選択して、そのセルの値をセルA2に表示させるサンプルコードです。セルA1の文字列「バナナ」を直接クリックしてみます。

Sub セル参照()
    Dim hensu As String
    hensu = Application.InputBox(prompt:="セル参照", _
                                Type:=2)
    Cells(1, 2) = hensu
End Sub

クリックしたセルに入力されている値「バナナ」を拾えます。

InputBox関数とApplicationオブジェクトのInputBoxメソッドの違い

両者の決定的な違いは、

  • InputBox関数 ⇒ 入力した文字列が返る
  • InputBoxメソッド ⇒ 指定したデータ型の値が返る

というものです。

文字列以外のデータ型の値を使用する際には、InputBoxメソッドを利用することになります。

コメント

  1. […] 参考:Excel VBA入門 その34:VBAで入力ボックスを表示する方法(InputBox) […]

タイトルとURLをコピーしました