投稿回数変更のお知らせ

作業ブックに下記のコードを設定しております。
各指定セル("B20", "F20", "H20")にそれぞれ日付が表示されると、設定マクロが実行できますが、
セル("H20")に日付を表示し、そのほかの("B20", "F20",)に日付を表示していないのに
マクロが実行されてしまいます。
指定セル("B20", "F20", "H20")全てに日付が表示された場合のみにマクロを実行できる
方法を教えてください。
現状のマクロ
Private Sub Worksheet_Change(ByVal Target As Range)
' ケース1
Dim checkRanges As Variant
checkRanges = Array("B20", "F20", "H20")
Dim isTargetChange As Boolean
isTargetChange = False
Dim checkRange As Variant
For Each checkRange In checkRanges
If Not Intersect(Target, Range(checkRange)) Is Nothing Then
isTargetChange = True
Exit For
End If
Next
If Not isTargetChange Then Exit Sub
If Range("B20").Value <= CDate("2025年3月31日") And _
Range("F20").Value <= CDate("2025年3月31日") And _
Range("H20").Value > CDate("2025年3月31日") Then
Call 申請の流れ改正前1図表示
Call 申請の流れ改正後2図表示
Call 申請の流れケース1図表示
Call 申請の流れケース2図非表示
Call 申請の流れケース3図非表示
Call 申請の流れケース4図非表示
Call 申請の流れケース5図非表示
Call 申請の流れケース6図非表示
Call 申請の流れ施行日以降ケース図非表示
End If
End Sub
以上です。
よろしくお願いいたします。

A 回答 (1件)

こんにちは



IsDate関数を利用すれば、セル値が日付かどうかを判定できますので、そちらを利用してください。
https://learn.microsoft.com/ja-jp/office/vba/lan …
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
上手く出来ました。

お礼日時:2025/02/11 17:05

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A