- ベストアンサー
【EXCEL】 ファイルを開いたままマクロを無効にしたい。
こんにちは マクロを組み込んだEXCELファイルを開いていますが、 マクロが動いて欲しくない時があります。 そういう場合は一旦閉じてから、マクロを無効にした状態で開き、また閉じて、またマクロを有効にして開くというふうにしています。 他に何か良い方法はありますでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ブックを開いたままマクロの有効無効を 切り替えることはできないような気がします。 が、マクロが有効でもコードが実行されないようにすることは可能です。 (正確には、実行されてもコードの先頭でExitする) パブリックな変数を用意して、この変数のTrue/Falseを切り替えて、 Falseの場合にはプロシージャをExitさせたり、イベントを無効にしたりすればよいかと思います。 たとえば、以下のような感じで・・・。 まず、標準モジュールに Public Flg As Boolean Sub test1() Dim strflg As String Application.DisplayStatusBar = True Flg = Not Flg Application.EnableEvents = Flg If Flg Then strflg = "Macro有効" Else strflg = "Macro無効" End If Application.StatusBar = strflg End Sub としておきます。 ブック内の他のプロシージャには Sub test2() If Not Flg Then Exit Sub ' 'コード ' End Sub のようにしてFlgがFalseのときは プロシージャの先頭で、Exit Subさせたり、 イベントを無効にすれば良いのではないでしょうか。 このtest1をコマンドバーボタンにでも登録しておいて、 有効/無効を切り替えるようにすれば良いかと思います。 一応、現在の有効/無効の状態がわかりやすいように ステータスバーに表示するようにしています。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
追伸です。 なお、Excel2002以上でしたら、 開くときに、以下のコードで、 Application.AutomationSecurity = msoAutomationSecurityForceDisable で、ブックのマクロ全てを使えなくすることは可能です。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 ご質問の説明が分りにくいのですが、自分が意図していないマクロが働くとしたら、イベント・ドリブン型のマクロのことでしょうか? もし、そうなら、 Application.EnableEvents = False でよいのではありませんか?