【Excelマクロ】入力内容をもとに自動メッセージを返す

Excelでアンケートや入力フォームを作成すると、「入力内容に応じてコメントやアドバイスを出したい」という場面がよくあります。

たとえば、

  • 点数が低かったら「再確認してください」
  • 「未提出」なら「提出をお願いします」
  • 「はい/いいえ」の答えによって次のアクションを表示

こうした「入力に応じたメッセージ表示」は、VBAで簡単に実装できます。

今回は、条件に応じてアドバイスやメッセージを自動で返すマクロを紹介します。

入力に応じてアドバイスを表示する基本マクロ

まずは、点数に応じて評価コメントを表示する例から紹介します。

Sub ShowAdvice()

    Dim score As Long

    ' B2セルに点数を入力すると、その内容を取得
    score = Range("B2").Value

    ' 点数に応じてコメントを表示
    If score >= 80 Then
        MsgBox "よくできました!"
    ElseIf score >= 50 Then
        MsgBox "まずまずです。復習をおすすめします。"
    Else
        MsgBox "理解が不十分のようです。もう一度見直しましょう。"
    End If

End Sub

このコードでは、B2セルの点数に応じて、3段階のメッセージが表示されます。

  • 80点以上 → よくできました!
  • 50点以上 → まずまずです
  • それ未満 → 見直しましょう

解説

  • score = Range("B2").Value でセルの値を取得
  • 条件に応じた If ~ ElseIf ~ Else で分岐
  • MsgBox を使ってポップアップでメッセージを表示

非常にシンプルな構成ですが、アンケートやチェックリストのフィードバックに活用できます。

よくあるパターン:文字列に応じたアドバイス

数値だけでなく、「文字列」に対しても同じように使えます。

Sub ShowMessageByInput()

    Dim ans As String
    ans = Range("C2").Value

    If ans = "未提出" Then
        MsgBox "早めの提出をお願いします。"
    ElseIf ans = "確認中" Then
        MsgBox "確認が終わり次第、提出してください。"
    ElseIf ans = "提出済" Then
        MsgBox "ご対応ありがとうございます。"
    Else
        MsgBox "入力内容を確認してください。"
    End If

End Sub

このコードでは、C2セルの内容が「未提出」「確認中」「提出済」のいずれかに応じてメッセージを切り替えています。

メリットと使いどころ

  • 入力に対してその場でフィードバックが出せる
  • 使い方によっては“チェックリストの自動ナビゲーション”にも応用できる
  • フォーム提出時のミス軽減につながる

実践応用:セル変更と同時に自動表示(Changeイベント)

上記の例では「ボタンを押す」か「マクロを実行」する必要がありましたが、セルに入力しただけで自動メッセージを出すことも可能です。

たとえば次のように、シートのコードに書き込みます。

Private Sub Worksheet_Change(ByVal Target As Range)

    ' 対象はB2セルだけ
    If Target.Address = "$B$2" Then

        Dim val As Variant
        val = Target.Value

        If IsNumeric(val) Then
            If val < 50 Then
                MsgBox "50点未満です。見直しをおすすめします。"
            End If
        End If

    End If

End Sub

補足

このコードは、「B2セルが変更されたとき」にメッセージを表示する処理です。

  • Worksheet_Change は、対象シートの「コード」ウィンドウに直接書く必要があります(標準モジュールではなく)
  • セルが変更されるたびに条件チェックされます

実装のメリット

  • 入力後すぐに反応するので自然なガイドになる
  • 繰り返し作業を減らせる
  • 自動化感が増して使いやすさが向上する

まとめ

ユーザーの入力内容に応じて、VBAでメッセージを返す機能は、とても実用性が高い仕組みです。

使い方次第で、

  • 入力ミスをその場で指摘できる
  • 入力後のアドバイスをすぐに表示できる
  • フォームやアンケートの使いやすさを向上できる

という効果が期待できます。

「入力内容に応じた反応を返す」この発想は、業務効率を高める第一歩です。

ぜひ、あなたのExcel業務にも取り入れてみてください。

コメントする

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

上部へスクロール