• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定の文字に対してポップアップ表示)

エクセルVBAでポップアップ通知の実装

このQ&Aのポイント
  • 特定の文字入力時にメッセージを表示する手法
  • 設定シートからメッセージ内容を動的に取得
  • VBAコードの修正方法を求める内容

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.4

回答No.2の補足です。 複数のセルを一括でコピペした時に対応するため的な感じでFor Eachでループしてるのだとしたら納得です。

kubotaman
質問者

お礼

やりたい事ができました!!ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

何も難しいことはないと思うが。下記を参考に。 Private Sub Worksheet_Change(ByVal Target As Range) f = "xx" '適宜変えること=質問の特定の文字 If Intersect(Target, Range("a1:B10")) Is Nothing Then Else x = InStr(Target, f) If x <> 0 Then MsgBox x & "文字目以下に検索文字" & f & "あり" End If End If End Sub

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.2

回答No.1の追加です。 ふと思ったのですが、私の知識不足でFor Each でループしているのが何故なのか分からないので たとえば以下のようにループしない方法だとまずいのでしょうか。 Private Sub Worksheet_Change(ByVal Target As Range) Dim searchRange As Range Dim FRng As Range If Intersect(Target, Me.UsedRange) Is Nothing Then Exit Sub End If '↑UsedRangeでしたらこの部分もなくていいような気もしますが ' 設定用シートを参照 Set searchRange = Sheets("設定用シート").Range("A:A") ' 変更したセルの特定の文字を検索 Set FRng = searchRange.Find(Target.Value) If FRng Is Nothing Then Set searchRange = Nothing Exit Sub End If ' ポップアップ表示 MsgBox FRng.Offset(0, 1).Value, vbInformation, "メッセージ" Set searchRange = Nothing End Sub 余計なお世話&疑問ですみません。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.1

message = searchRange.Columns(2).Find(searchText).Offset(0, 1).Value は message = searchRange.Columns(1).Find(searchText).Offset(0, 1).Value じゃないでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A