- ベストアンサー
特定のシートのみ再計算させない方法は?
特定のシートのみ再計算させない方法はありませんか? 1つのBOOKに2つのシートがあり、 [sheet1]=自動計算 [sheet2]=手動計算 という設定を行いたいと考えています。 BOOKを分けずにスマートな方法はないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 本来は、ワークシートのプロパティの、EnableCalculation を False にしてあげれば、片方のシートは、手動になります。(プロパティの出し方は、ワークシートをアクティブな状態にして、[コントロールツールボックス]のプロパティを押せば、[シート・プロパティ]が出てきます) しかし、手作業の設定ですと、ブックを閉じて、再び開けた時には、デフォルトの True に戻ってしまいます。 そこで、VBAによる手段しかありません。 [ツール]-[マクロ]-[Visual Basic Editor] (ショートカット= Alt + F11) で、 左上に、プロジェクトというエクスプローラがありますから、 その中から、 [ThisWorkbook ] というのを、ダブルクリックして、エディタ画面を開けたら、 以下のコードを貼り付けて、保存し、再び、このブックを開けると、設定されています。 '--------------------------------------- Private Sub Workbook_Open() 'シート2を手動計算にさせる ThisWorkbook.Worksheets("Sheet2").EnableCalculation = False End Sub '---------------------------------------
その他の回答 (1)
- NCU
- ベストアンサー率10% (32/318)
sheet1がアクティブなときだけ手動にする手もあるかも。 (やりたい事による。)
お礼
目的が書かれていない質問にご回答ありがとうございます。 今回はWendy02さんの方法で実現することが出来ました。
お礼
教えていただいたコードを参考にさせていただきました。 最終的な段階でsheet2についても1回のみ再計算が必要となりました。 教えていただいたコードとあわせて以下のコードをsheet2に組み込むことで希望通りのエクセルを作成できました。 '---------------- Sub 再計算() ThisWorkbook.Worksheets("summary").EnableCalculation = True ThisWorkbook.Worksheets("summary").EnableCalculation = False End Sub '---------------- ありがとうございました。