プロが教える店舗&オフィスのセキュリティ対策術

エクセルファイルをオープンすると自動的に再計算がされます。VBAを使って、Workbook_Open()で、再計算を止めると、当然、ブックを開いた時全てで再計算が停止してしまいます。
で、質問ですが、あるブックから他のブックを開いた時には、再計算を行なわない(あるブックにVBAを組み込んで・・(イベントは、ボタンにからめてもok!)にして、手動で他のブックを開いた時は、再計算を行なうようなことが出来るのでしょうか?
VBA初心者の僕として、精一杯考えたのは、親となるブックから、他のブックを開いた時に、他のブックのWorkbook_Open()イベントが始る前にWorkbook_Open()を書き込めればできると思うのですが?そんなこと無理なのでは?って思います。どなたか?詳しい方いませんでしょうか?宜しくお願い致します。

A 回答 (2件)

こんにちは。

KenKen_SP です。

> 他のブックのWorkbook_Open()イベントが始る前にWorkbook_Open()
> を書き込めればできると思うのですが?

VBA コードを VBA から書き込むのは可能なのですが、禁じ手ですし、
今後不可能になるかもしれません。

Workbook_Open ではなく、Activate イベントすれば、このコードが
書かれたブックだけで動作しますが、どうですか?

Private Sub Workbook_Activate()
  Application.Calculation = xlManual
End Sub

Private Sub Workbook_Deactivate()
  Application.Calculation = xlCalculationAutomatic
End Sub

この回答への補足

ご指導ありがとう御座います。
教えていただいたルーチェンをキーとなるエクセルブックのThisworkbookに書き込むのが?正しいのでしょうか?各々のブックに書き込むと普通に立ち上げたときも再計さんしないように思えるのですか・・?
あと、VBAのコードを書き込む方法は教えていただけないでしょうか?各シートに印刷用のボタンを配置したファイルを一杯作りましたが、VBAのコードを変更したい場合、手動で一つ一つコピー&ペーストしています。やはり、禁じ手なので無理でしょうか?
宜しくお願い致します。

補足日時:2005/11/04 17:09
    • good
    • 0

こんにちは。



 [ツール]->[オプション]->[計算方法]タブに、自動か手動かを設定するところはありますが、Excel自体の設定と思われます。

では。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A