プロが教える店舗&オフィスのセキュリティ対策術

シート名「青紙表」にVBAコード
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$R$18" And IsNumeric(Cells(18, "R").Value) And Len(Cells(18, "R")) = 8 Then
Application.EnableEvents = False
Worksheets("青紙表").Range("AX3").Value = Worksheets("受付").Range("J2").Value
Application.EnableEvents = True
ActiveWorkbook.Save
End If
On Error Resume Next
If Range("J53").Value = "■" Then
Call 構造
End If
If Range("CI27").Value = "■" Then
Call 電子完了
End If
If Target.Address <> "$C$20" Then Exit Sub
If Target.Value <> "" Then
If InStr(1, "一郎,次郎,三郎,四郎,五郎", Target.Value) > 0 Then
On Error Resume Next
Worksheets("受付").Visible = False
Worksheets("管理表").Visible = False
Worksheets("地方照会").Visible = False
Worksheets("札幌道路").Visible = False
Worksheets("札幌宅地").Visible = False
Worksheets("札幌開発").Visible = False
Worksheets("300").Visible = False
Worksheets("500").Visible = False
On Error Resume Next
Application.DisplayAlerts = False
Sheets("F審査").Delete
Sheets("F設計INDX").Delete
Application.DisplayAlerts = True
End If
Else
On Error Resume Next
Worksheets("受付").Visible = True
Worksheets("管理表").Visible = True
End If
On Error Resume Next
If Range("CI20").Value = "■" Then
Call 日付
End If
End Sub
があります。
各セル値によってVBAが実行されますが、
If Target.Address <> "$C$20" Then Exit Sub
If Target.Value <> "" Then
If InStr(1, "一郎,次郎,三郎,四郎,五郎", Target.Value) > 0 Then
の部分を
セルCE32に設定している数式「=IF( C20="", "□", "■" )」を利用して
C20に各自の名前ではなく、C20に「■」表示されたときにコードが実行されるようにできる方法を教えてください。
よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    どのようにコードを変更すればよいのでしょうか?
    詳しく教えていただけますでしょうか。
    宜しくお願い致します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/02/02 09:42

A 回答 (1件)

対象のシートで


以下のサブルーチンの内に
C20の値を判断するコードを書けば良くないですか?

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
この回答への補足あり
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速試してみます。

お礼日時:2023/02/02 11:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!