• ベストアンサー

マクロでマクロを削除、または停止させるには?

 1つのExcelファイルからマクロを走らせて、複数のExcelファイルにあるデータを集めたいと思っています。 ただ、複数のExcelファイルは、ファイルを閉じる際にマクロが走るようになっているので、このマクロが走らないようにして、データを集めたいです。  そこで、実現したいのは、1つのExcelファイルから集計用のマクロを走らせる時に、複数のExcelファイルに設定してあるマクロを削除するか、あるいは、マクロを停止させたいです。  ちなみに、複数のExcelファイルを開いた後、閉じないことにより、マクロを走らせないようにして、集計を行うマクロを試しましたが、開いたままのファイル数が多いようで、途中でエラーが出て止まってしまいます。  アドバイスをお願いいたします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

参考URLは、以前に、回答した内容ですが、 マクロのあるファイルをマクロを無効にして開く方法です。 この手法が使えるかもしれません

参考URL:
http://okwave.jp/kotaeru.php3?qid=1080978
booooob
質問者

お礼

エクセルを別に起動するという方法はとても参考になりました。ありがとうございます。 ただ、私の乏しい知識では少し複雑に思えましたので、別の方法で対処しました。ファイルを閉じる際にマクロが走らないように、閉じる処理の前に Application.EnableEvents = False そして、閉じる処理の後に Application.EnableEvents = True と書きました。 これで希望する動作となりました。

その他の回答 (2)

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

こんにちは。 もう締められたかと思いましたが、 >処理の前に >Application.EnableEvents = False >そして、閉じる処理の後に >Application.EnableEvents = True >と書きました。 >これで希望する動作となりました。 マクロに手を加えてよいのなら、そんな面倒なことをせずに、 Private ThisWorkbook_Open() ---------------2行目に、Exit Sub か、End を入れればよいです。 | End Sub

booooob
質問者

補足

ご返答ありがとうございます。 マクロに手を加えてよいのは、データが集まる1つのExcelファイルです。 集計の元となる複数のExcelファイルは、ファイル数が多いため、マクロに手を加えることは考えておりません。 EnableEventsは、1つのExcelファイルのマクロに加えました。 マクロの動きを具体的に申し上げます。1つのExcelファイル側のマクロを走らせると、同階層にある複数のExcelファイルを一つずつ開いて、必要なデータをコピーし、1つのExcelファイル側にペーストします。そして、複数のExcelファイルを閉じます。この閉じる処理のときに、複数のExcelファイル側のマクロが走ってしまうのです。そこで、1つのExcelファイル側に書かれたマクロの閉じる処理にEnableEventsを加えて、複数のExcelファイル側のマクロが走るのを止めました。

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

こんにちは。 通常は、起動時のマクロを中止させるのは、Shiftキーを押しながら、ブックを選択して開きます。 ただ、セキュリティレベルを変更するのでしたら、マクロ-セキュリティを「高」または、「最高」にする、のと、信頼のおけるソース元側の「すべての組み込み済みのアドインとテンプレートを信頼する」を外せば完璧です。 なお、マクロでマクロをセキュリティレベルを変える方法は、.AutomationSecurity は、2002 以上ですね。 こちらをご覧になってください。 Excel の起動方法を指定する ヘルプ

参考URL:
http://office.microsoft.com/ja-jp/assistance/HP051993911041.aspx
booooob
質問者

お礼

アドバイスありがとうございます。 さて、AutomationSecurityですが、これでマクロを無効にすると、その後の必要なマクロまで無効となってしまいます。 今回は、EnableEventsを使うことで、必要なマクロを生かしたまま、ファイルを閉じる際に走るマクロを止めることができました。

関連するQ&A

専門家に質問してみよう