Excel を使っていると、
「特定の文字を入力したときだけ動く仕組み」
を作りたい場面があります。
たとえば:
・ “test” とタイプした瞬間にチェック処理を走らせる
・ “ok” と入力したらメッセージを出す
・ “secret” と打つと隠しメニューが開く
こうしたニーズは Worksheet_Change イベント を使うと簡単に実現できます。
■ 今回作る仕組み
指定したシートで“secret”とタイプしたら、メッセージボックスを表示する
以下を 対象シートのコード(Sheet1 など)に貼る だけ。
Public Buffer As String
Private Sub Worksheet_Change(ByVal Target As Range)
' セルが複数変更された場合は無視
If Target.CountLarge > 1 Then Exit Sub
' 入力された文字列を追加
Buffer = Buffer & CStr(Target.Value)
' 直近5文字だけ残す(secret = 6文字の場合は6にする)
If Len(Buffer) > 6 Then
Buffer = Right(Buffer, 6)
End If
' 特定ワードになったら発動
If Buffer = "secret" Then
MsgBox "秘密コマンド発動!"
Buffer = ""
End If
End Sub

■ 注意点
- 複数セルを一括ペーストした場合はスキップされる(CountLarge 判定により)
- このコードは 対象シートに貼る必要あり(標準モジュールでは動かない)
- セルへの入力がトリガーなので、確認ダイアログで止めたい場合は MsgBox が適切



コメントを残す