• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel(エクセル)で非表示シートをVBAで計算するには?)

Excel(エクセル)で非表示シートをVBAで計算するには?

このQ&Aのポイント
  • エクセルで1つのブックにAシート~Fシートまであるとします。再計算させると、すべてのシートを再計算してしまうため時間がかかるので、マクロの自動記録を利用して「Aシート→Bシート→Cシート→Dシート→Eシート」と、必要なシートだけを順番に計算させる事で、処理時間短縮をさせる事をする事ができました。
  • EシートとFシートは表示させておいて、その他のA~Dシートは非表示にしました。Eシートには、A~Dシートで計算した結果が表示されるようになっています。
  • A~Dシートを非表示にして作成したマクロを実行すると、エラーが出てしまい上手くできません。A~Dシートを非表示にしていても、ブック全体を再計算させる事はできます。非表示にしたシートをマクロで計算させるには、どのようにしたら良いでしょか?

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 > A~Dシートを非表示にして作成したマクロを実行すると、エラーが出て > しまい上手くできません。 > A~Dシートを非表示にしていても、ブック全体を再計算させる事はできます。 ということは、シートの表示・非表示という状態の差は再計算時に問題に ならないということです。 また、非表示のシートは Select できません。 以上の点から対策は、「Select しなければ良い」となります。   Sheets("Aシート").Select   ActiveSheet.Calculate これを Select を使わずに書けば、   Sheets("Aシート").Calculate です。

Cuty_Cat
質問者

お礼

ご回答ありがとうございます。 アドバイスして頂いた通りに修正した所、シートを非表示にしても計算させる事ができるようになりました。 的確なアドバイスありがとうございました。

その他の回答 (1)

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.2

例えば表示しているもののみ再計算は以下でできます。 Sub xxx() For Each sh In ActiveWorkbook.Sheets If sh.Visible = True Then ActiveWorkbook.PrecisionAsDisplayed = True Next End Sub でももっといい方法があるような?

関連するQ&A