- ベストアンサー
セルに誤って入力した時のメッセージ表示
- セルに誤って入力した時のメッセージ表示方法として、入力規則やモジュールの設定が考えられます。
- 具体的な誤り例として、休日なのに平日の算定区分で入力した場合と、平日なのに休日の算定区分で入力した場合の2パターンがあります。
- 誤って入力した場合には、誤り確認フラグとしてF列セルに値を入れることができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
具体的なセルの位置が分からないので A1からA100にデータを入力したらE列の同じ行のセルに1か2が表示されるとして、該当するシートに以下を記載して試してみてください。 A1からA100以外のセルを編集しても何も起こりません。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub Else Application.EnableEvents = False Select Case Cells(Target.Row, "E").Value Case 1 MsgBox "誤っています休日です", vbCritical Case 2 MsgBox "誤っています平日です", vbCritical Case Else End Select End If Application.EnableEvents = True End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>モジュールで設定したい この表現見たことない。プログラム(最低ではVBA)で組みたいということか? ーーー 我流の理解で、適当に単純化して、VBAで下記をやってみた。 素人っぽいと笑われそうですが。 データ例 Sheet1 B列 セルにデータを順次入力。 D1,E1 データ基準日 2022/2/6(その日のつど変える)データ基準日は見出し文言 Today,Dateよりも日付を入力する方式を勧める。 入力コードテーブル=>初めに作っておく。 (下記内容は我流。質問には詳しく書いてない=>初心者らしい点。本当はここによって、VBAの難しさが決まる) 平日 (G列)休日(H列) 1 11 2 12 3 14 4 25 平日 と休日で共通コードはないとする(私の勝手な仮定です)。 === Sheet1のChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 2 Then Exit Sub ’B列入力以外は何もしない you = Weekday(Range("e1")) MsgBox you If you = 1 Or you = 7 Then kyuu = "Y" '休日 Else kyuu = "N" '平日 End If MsgBox kyuu '--- Select Case kyuu Case "Y" Set fnd = Range("H2:H6").Find(Target) If fnd Is Nothing Then MsgBox "休日として誤り" End If Case "N" Set fnd = Range("G2:G6").Find(Target) If fnd Is Nothing Then MsgBox "平日として誤り" End If End Select End Sub (注)Msgboxの有無(省略)や文言は適当に変えてください。 ==== 本当(実務)は、上記のように単純には行かない場合がほとんどで、複雑化するのだろう。 質問者は質問の書き振りから、VBAのイベントというのも使用は未経験ではないか? また上記仮定の単純でない場合のVBAをどう組むかなど自力で組めるかな。 だから本件は現状では、質問者には無理ではないかと推測する。
お礼
imogasiさん、ご教示ありがとうございます。 また、いろいろとご指摘をいただきまして、ありがとうございます。 では、早速ご教示いただいた内容で試してみたいと思います。
マクロ化出来ると思いますが、 言いたいことが伝わってこないです。 具体的なものって、F列を誤り確認フラグで使うという事しか分かりませんもの。 それ以外全然全体像が分かりません。 どこかに算定区分の入力エリアがあって、どこかに日付も有るのだと思います。 Excelを添付できるのか解りませんが、Excelを添付してイメージを持たせてもらうか、Excelが添付できないのなら画像ファイルを添付してもらえれば全体像が分かると思います。
お礼
kkkkkmさん、いつも丁寧にご教示くださいまして誠にありがとうございます。 早速試してみたいと思います。
補足
kkkkkmさん、いつもお世話になっております。 教えていただいた内容を基本として、実際使用するエクセルシートに合った内容へとカスタマイズしました。 おかげさまで、希望通りの動作になりました。 今後とも、どうぞよろしくお願いいたします。