質問: 【エクセル2003 マクロ】 下記内容のマクロを教えて下さい。よろしくお願いします。 「注意事項」 ・シートには保護がかかっています(過去の質問を参考下さい:) ・保護がかかっていますがあA1、B1はロックを外し入力可能な状態です ・B1はリストを使いプルダウンして担当者名を選択することが可能です 1A1は空白でB1も空白の場合、エラーメッセージの表示はなし 2A1は入力済でB1も入力済みの場合、エラーメッセージの表示はなし 3A1は入力済でB1は空白の場合、エラーメッセージで「担当者を選択して下さい」と表示 4A1は空白でB1は入力済の場合、エラーメッセージで「作業内容を入力して下さい」と表示 以上、よろしくお願いします。
回答: VBEからオブジェクトエクスプローラからThisWorkbookをダブルクリックするとブックモジュールが開くのでそこに 次ぎのコードをコピペしてください。 ``` Private Sub Workbook_BeforeClose(Cancel As Boolean) With ActiveSheet If .Range("A1") = "" And .Range("B1") <> "" Then MsgBox "作業内容を入力して下さい", vbExclamation Cancel = True End If If .Range("A1") <> "" And .Range("B1") = "" Then MsgBox "担当者を選択して下さい", vbExclamation Cancel = True End If End With End Sub ``` ここでは、閉じるときにメッセージを出すということですので、 メッセージが出るときはCancel=Trueを指定することで閉じる動作をキャンセルするようにしました。 それと、リンク先のコードがActivesheetを対象にしているので選択中のシートのA1とB1にしています。 特定のシートの場合は、Activesheetの一箇所を変更してください。