質問: 特定のマクロのオンオフの切替 社内用にエクセルで実行予算表を作っています。 インターネットでやり方を調べ、実行予算を変更するとメッセージが出るようにしました。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("E15:E42")) Is Nothing Then Exit Sub Else MsgBox "実行予算額が変更されました。印刷して提出してください。" End If End Sub ところが未入力の状態から入力しても毎回出てしまい鬱陶しいです。 ・このマクロだけを有効・無効と切り替えるためのマクロ作成は可能か 例えば「実行予算入力完了」というボタンを押し、それ以降数字を変えると 上のメッセージが出るようになる (ボタンを押したときに印刷されるとなお理想的) ・未入力の状態から入力したときは出ないようにできるか どちらかでもできれば嬉しいのですが、可能でしょうか。
回答: 一例として、、 下記のようにすれば、セル G1 に何か入力されている時だけ反応するようになります。 Me.Range("G1") は影響のない適当なセルに変更してください。 '----------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Me.Range("E15:E42")) Is Nothing Then Exit Sub If Me.Range("G1").Value <> "" Then MsgBox "実行予算額が変更されました。" & vbCrLf & "印刷して提出してください。" End If End Sub '----------------------------------------------------- そのうえで、ActiveX コントロールの CommandButton1 をシートに置き、当該シートのシートモジュールに下記コードをコピペします。 Me.Range("G1") は上記のセルを修正した場合、同じセルに修正が必要です。 '----------------------------------------------------- Private Sub CommandButton1_Click() Me.Range("G1").Value = 1 '例では印刷プレビュー Me.PrintPreview '印刷するならこれ 'Me.PrintOut End Sub '----------------------------------------------------- '[1019350810]