【ExcelVBA・マクロ】InputBoxの使い方|ユーザーに値を入力させる方法【コピペOK】

InputBoxの使い方 ExcelVBA

ExcelVBAで処理を行うとき、次のようなことはありませんか?

  • ユーザーに値を入力させたい
  • 毎回コードを書き換えるのが面倒
  • 実行時に条件を指定したい

このような場合は、InputBox(インプットボックス)を使うと便利です。
VBA実行時に入力ダイアログを表示し、ユーザーに値を入力してもらうことができます。

この記事では、InputBoxの基本から実務で使える応用までを初心者向けに分かりやすく解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • InputBoxの基本的な使い方が分かる
  • 入力された値を処理に使える
  • キャンセル時の対処が分かる
  • 実務で使える活用例が分かる

基本:InputBoxの使い方

まずは最もシンプルなコードです。

Option Explicit

Sub InputBoxBasic()

    Dim userInput As String

    userInput = InputBox("値を入力してください")

    MsgBox "入力された値:" & userInput

End Sub

これで、入力ボックスが表示され、入力した内容を取得できます。


InputBoxの構文

InputBox(メッセージ, タイトル, 初期値)
  • メッセージ → 表示する文章
  • タイトル → ウィンドウのタイトル(省略可)
  • 初期値 → 最初から表示される値(省略可)

タイトルと初期値を設定する

Option Explicit

Sub InputBoxWithTitle()

    Dim val As String

    val = InputBox("日付を入力してください", "入力画面", "20240101")

    MsgBox val

End Sub

ユーザーに分かりやすい入力画面を作れます。


数値として扱う方法

入力値は文字列で取得されるため、数値として使う場合は変換が必要です。

Option Explicit

Sub InputNumber()

    Dim num As Long

    num = CLng(InputBox("数値を入力してください"))

    MsgBox num * 2

End Sub

CLngで数値に変換しています。


キャンセル時の処理

キャンセルが押された場合、空文字(””)が返ります。

Option Explicit

Sub InputCancelCheck()

    Dim val As String

    val = InputBox("値を入力してください")

    If val = "" Then
        MsgBox "キャンセルされました。"
        Exit Sub
    End If

    MsgBox "入力値:" & val

End Sub

数値入力をチェックする方法

入力ミスを防ぐには、チェック処理を入れるのがおすすめです。

Option Explicit

Sub InputCheckNumber()

    Dim val As String

    val = InputBox("数値を入力してください")

    If val = "" Then Exit Sub

    If Not IsNumeric(val) Then
        MsgBox "数値を入力してください。", vbExclamation
        Exit Sub
    End If

    MsgBox "入力値:" & val

End Sub

セル範囲を指定させる方法(Application.InputBox)

セル範囲を選ばせたい場合は、通常のInputBoxではなくApplication.InputBoxを使います。

Option Explicit

Sub InputRange()

    Dim rng As Range

    Set rng = Application.InputBox("範囲を選択してください", Type:=8)

    rng.Select

End Sub

Type:=8 を使うことで、セル選択が可能になります。


よく使う実務パターン

入力された値で検索する例です。

Option Explicit

Sub SearchByInput()

    Dim keyword As String

    keyword = InputBox("検索する値を入力してください")

    If keyword = "" Then Exit Sub

    MsgBox "「" & keyword & "」を検索します"

End Sub

実務での活用例

  • 検索条件の入力
  • 日付や期間の指定
  • ファイル名の入力
  • 処理対象の指定

InputBoxを使うことで、柔軟なマクロを作れるようになります。


よくあるエラーと対処法

① 数値入力でエラーになる

必ず IsNumeric でチェックしてください。

② キャンセル時にエラー

空文字チェックを入れると防げます。

③ コードは正しいのにエラーになる

コピー時に全角文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。


まとめ

  • InputBoxでユーザー入力を取得できる
  • 入力値は文字列として扱われる
  • 数値や範囲は変換・専用InputBoxを使う
  • 実務では入力チェックが重要

InputBoxを使いこなせるようになると、VBAの使い勝手が大きく向上します。
ユーザーが自由に条件を指定できるようになるため、より実用的なマクロが作れるようになります。
ぜひ活用してみてください。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

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