• ベストアンサー

【EXCEL】 ファイルを開いたままマクロを無効にしたい。

こんにちは マクロを組み込んだEXCELファイルを開いていますが、 マクロが動いて欲しくない時があります。 そういう場合は一旦閉じてから、マクロを無効にした状態で開き、また閉じて、またマクロを有効にして開くというふうにしています。 他に何か良い方法はありますでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

ブックを開いたままマクロの有効無効を 切り替えることはできないような気がします。 が、マクロが有効でもコードが実行されないようにすることは可能です。 (正確には、実行されてもコードの先頭で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)
回答No.3

追伸です。 なお、Excel2002以上でしたら、 開くときに、以下のコードで、 Application.AutomationSecurity = msoAutomationSecurityForceDisable  で、ブックのマクロ全てを使えなくすることは可能です。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 ご質問の説明が分りにくいのですが、自分が意図していないマクロが働くとしたら、イベント・ドリブン型のマクロのことでしょうか? もし、そうなら、 Application.EnableEvents = False でよいのではありませんか?

関連するQ&A