VBA InputBox – ユーザーからの入力を取得する

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 8月 1, 2022

このチュートリアルでは、VBAの入力ボックスを使用してユーザーから入力を取得する方法を説明します。

VBAのInputBoxを使用すると、入力ボックスを表示してユーザーに情報を入力させることができます。 こうして得た情報は、VBAコードやExcelワークシートで使用することができます。

VBA InputBoxと変数

VBAコードで変数を宣言し、入力ボックスに入力された情報を保存することができます。 そして、この変数をコード内で使用することができます。 InputBoxから得たい情報の種類によって、テキストを返す変数(stringまたはvariant変数)、数値を返す変数(integerlongdoubleまたはsingle変数)を指定することができます。

文字列変数とInputBox

ここでは、データが文字列変数に返される入力ボックスを作成する方法を説明します。

Dim strInput as String

strInput = InputBox("InputBoxの例です", "任意のタイトル", "ここに入力してください")

vba inputbox 入力ボックス

まず、変数を宣言します。この変数には、ユーザーが入力した値が代入されます。 入力ボックスが文字列(アルファベットや数字も含む)を受け取ることができるように、変数の型にはStringを使用しています。

数値変数とInputBox

数値変数を宣言した場合、入力ボックスには数字のみを入力する必要があります。

Dim iInput As Integer
iInput = InputBox("数値を入力してください", "請求書番号を作成します", 1)

まず、数値変数を整数型変数として宣言します。 そして、入力ボックスにデフォルト値である1を入れることもできます。

Inputbox integer 入力ボックス

もし、数値の代わりに文字列を入力してOKをクリックすると、数値変数が文字列を受け付けないため、Type Mismatch Errorが発生します。

InputBox integer error 入力ボックス

ユーザーから入力を得る

ここでは、InputBoxの最も一般的な機能を使用した別の例を示します。

tiphacks3 入力ボックス inpuptbox

次のコードは3つのことを行います。

1.  InputBoxで入力を促し、変数に代入する

2. 入力を確認し、確認できない場合はサブを終了する

3. 入力された内容をメッセージボックスで返す

Public Sub MyInputBox()

Dim MyInput As String
MyInput = InputBox("InputBoxの例です", "任意のタイトル", "ここに入力してください")

If MyInput = "ここに入力してください" Or MyInput = "" Then
  Exit Sub
End If

MsgBox "変数MyInputBoxのテキストは " & MyInput

End Sub

入力をExcelシートに戻す

入力ボックスに入力した内容を、Excelシートの特定のセルに戻すことができます。

Range("P1") = InputBox("名前を入力してください", "名前の入力", "ここに名前を入力してください")

vba input box enter 入力ボックス

また、変数を使用して入力データをExcelシートに返すこともできます。

Sub EnterNumber()
   On Error Resume Next
   Dim dblAmount As Double
   dblAmount = InputBox("必要な量を入力してください", "数値を入力")
   If dblAmount <> 0 Then
      Range("A1") = dblAmount
   Else
      MsgBox "数値が入力されていません!"
   End If
End Sub

上の例では、数字を入力するように要求されています。 数値を入力すると、変数 dblAmount は、ExcelシートのセルA1に数値を入力します。 しかし、数値を入力しなかった場合は、メッセージボックスが表示され、数値が入力されていないことがわかるので、セルA1には何も入力されません。

InputBox Excel Error 入力ボックス

Access VBAにおけるInputBoxの使用

メッセージボックスの形でユーザー入力を返す場合、AccessでもExcelと全く同じように機能します。

しかし、ユーザーの入力をデータベースに戻したい場合は、Excelで使用されているRangeオブジェクトではなく、Recordsetオブジェクトを使用する必要があります。

Sub EnterInvoiceNumber()
   Dim dbs As Database
   Dim rst As Recordset
   Set dbs = CurrentDb
   Set rst = dbs.OpenRecordset("tblMatters", dbOpenDynaset)
   With rst
      .AddNew
      !InvNo = InputBox("Please enter the Invoice Number", "INVOICE NUMBER GENERATION", 1)
      .Update
   End With
   rst.Close
   Set rst = Nothing
   Set dbs = Nothing
End Sub

vba inv no

VBAのコーディングが簡単に

VBAのコードをオンラインで検索するのはもうやめましょう。AutoMacro – A VBA Code Builderは、初心者が最小限のコーディング知識でゼロから手順をコーディングできるだけでなく、すべてのユーザーにとって時間の節約に役立つ多くの機能を備えています! alt text もっと詳しく

<<VBAのサンプルに戻る

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples