質問: EXCELのマクロについてです。
回答: '----------------------------------- '標準 モジュールに書くコード '----------------------------------- Public Const シート名$ = "Sheet1" Public Const 期限日時セル$ = "A1" Public Const 個人情報セル$ = "A2:K13" Public 処理済み As Boolean Public Function 期限切れ() As Boolean 'セルの値を変数に入れる Dim 期限: 期限 = Worksheets(シート名).Range(期限日時セル).Value '日付以外の値が入力されていたら処理を抜ける If Not IsDate(期限) Then Exit Function '現在日時が期限日時を超えていなければ処理を抜ける If Now <= 期限 Then Exit Function 期限切れ = True End Function Public Function 個人情報消去() As Boolean '消去しない選択をした場合は処理を抜ける If MsgBox("個人情報の保存期限が切れています。" & vbNewLine & _ "消去しますか。", vbYesNo) = vbNo Then Exit Function Application.EnableEvents = False 'セルの内容を消去する Worksheets(シート名).Range(個人情報セル).ClearContents Application.EnableEvents = True 個人情報消去 = True End Function '----------------------------------- 'ThisWorkbook モジュールに書くコード '----------------------------------- Private Sub Workbook_Open() '期限切れなら If 期限切れ = True Then '未処理なら If 処理済み = False Then If 個人情報消去 = True Then MsgBox "期限切れの個人情報が消去されました" 処理済み = True ThisWorkbook.Save End If End If End If End Sub '----------------------------------- 'シート モジュールに書くコード '----------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) '期限が変更されたら If Not Intersect(Target, Range(期限日時セル)) Is Nothing Then 処理済み = False End If '期限切れなら If 期限切れ = True Then '未処理なら If 処理済み = False Then If 個人情報消去 = True Then MsgBox "期限切れの個人情報が消去されました" ThisWorkbook.Save 処理済み = True End If End If End If End Sub