• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セルに入力すると警告表示が出る マクロの書き方)

エクセルで特定の文字を入力した場合の警告表示について

このQ&Aのポイント
  • エクセルで特定の文字を入力した場合に、警告メッセージが表示されるようにする方法について教えてください。
  • データの入力規則では特定の文字を制限することができず、マクロを使用する必要があります。
  • C列とE列で特定の文字(×または―)が選択された場合に、警告メッセージが表示されるようにする方法を教えてください。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

> どのようにすれば列E,G,I,Kにも設定できますでしょうか? If Application.Intersect(Target, Range("E:E","G:G","I:I","K:K")) Is Nothing Then を以下のようにしてみてください。 If Application.Intersect(Target, Range("E:E,G:G,I:I,K:K")) Is Nothing Then 最初の If Application.Intersect(Target, Range("E:E", "G:G")) Is Nothing Then が間違ってましたね。E,F,Gが対象になってました。すみません。

rune9w6q
質問者

お礼

kkkkkm さん 何度もありがとうございます。 できました。 Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("E:E,G:G,I:I,K:K")) Is Nothing Then Exit Sub End If If Target.Value = "×" Or Target.Value = "―" Then MsgBox "×―の時は氏名欄に欠席or中止と書き加えて下さい", vbInformation End If Target.Offset(, -1).Select End Sub 分厚い本を買って調べる手間が省けました。 本当にありがとうございました。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

No1の追加です。 入力規則でしたら、C3を起点として規則を対応させたいセルを選択し ユーザー設定で =AND(C3<>"×",C3<>"ー") とすればできると思います。

rune9w6q
質問者

お礼

kkkkkm さん ありがとうございます。 入力規則で、ユーザー設定 =AND(C3<>"×",C3<>"ー") としましたら出来ました。しかし、前に設定したプルダウンリストが消えてしまいました。 そこで、最初に教えて頂いたマクロを使ってみました。 Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("E:E", "G:G")) Is Nothing Then Exit Sub End If If Target.Value = "×" Or Target.Value = "―" Then MsgBox "氏名欄に、×なら欠席と追記、―なら中止と追記して下さい", vbInformation End If Target.Offset(, -1).Select End Sub これもできました。 しかし、私は下のように、列E,G,I,Kにも設定したいのです。     D   E    F   G   H   I   J   K 氏 名1  出欠 氏 名2  出欠 氏 名3 出欠 氏 名4 出欠 以下のように書き換えて、やってみたところ、マクロが実行されませんでした Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("E:E","G:G","I:I","K:K")) Is Nothing Then Exit Sub End If If Target.Value = "×" Or Target.Value = "―" Then MsgBox "氏名欄に、×なら欠席と追記、―なら中止と追記して下さい", vbInformation End If Target.Offset(, -1).Select End Sub どのようにすれば列E,G,I,Kにも設定できますでしょうか? お教えいただければ幸いです。 図を挿入しようとしたら、最初の質問時に限るようで、分かりにくく申し訳ありません。 お手数をおかけして誠にすみません。よろしくお願い申し上げます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

該当するシートのシートモジュールに以下を記載して下さい。 Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("C:C", "E:E")) Is Nothing Then Exit Sub End If If Target.Value = "×" Or Target.Value = "―" Then MsgBox "氏名欄に、×なら欠席と追記、―なら中止と追記して下さい", vbInformation End If Target.Offset(, -1).Select End Sub

関連するQ&A