• 締切済み

ワークシートの軽量化

エクセル2000の質問なのですが、 ワークシートが20枚程度あるブックを使用しています。 すべてのシートには表があり、印刷範囲外に表に入力する値が記載してあり、その値を参照して表を作成していました。 似たような表ばかりなので、新しいシートを追加しそのシートに表をまとめ、そのシートから値を取得するように変更したのですが、 元のデータの倍(1.6M)の重さになってしまい かなり重たいブックになってしまいました。 どうしたら軽くなるのか教えていただきたいです。 VBAを使用すれば問題が解決するのであれば その方法も教えていただきたいです。

みんなの回答

noname#79209
noname#79209
回答No.2

> 似たような表ばかりなので、新しいシートを追加しそのシートに表をまとめ、 > そのシートから値を取得するように変更したのですが、 当然、各シートの印刷範囲外にあったデータは削除してますよね? > 似たような表ばかりなので、 纏めすぎて、検索側に余計な絞り込み用関数が増えてしまったとか...

jellya_a
質問者

補足

> 当然、各シートの印刷範囲外にあったデータは削除してますよね? 削除しています。 > 纏めすぎて、検索側に余計な絞り込み用関数が増えてしまったとか... 特に関数は使用しておらず、 ”=”で引っ張ってきているだけなのですが・・・

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

すらすらと質問文章が書いてあって、良くわからない。 変更点は今まで自シート参照を、他シート参照に変えたのかな。 それでファイル容量が倍になったといわれても、定量的に答える技量のある方は居ないのではないかな。 >VBAを使用すれば問題が解決するのであれば 方法を教えるというよりも、質問者が(その域にあるのかどうかわからないが)VBAの基礎的なところまでは勉強してもらわないと。 関数式をやめてVBAによる他シートセルの値を代入する方法に改める 方法はあると思う。 バッチ処理的な処理で済むならともかく、関数式は即座に反応する方式なので、VBAでそれを実現するのも大変と思う。

jellya_a
質問者

補足

説明不足ですみません。 ブックにはワークシートが20枚程度あります。 ワークシートaにはA、bにはB、cにはCの表が記載してあります。 aの印刷範囲外にはA’という計算式の入った表があり、 表AはA’の値を引っ張ってきて作成してあるので、 表AにはA’の対応するセルが”=”で入力されています。 表A・表B・表Cはそれぞれ別の表ではなく、 一部を重複して使用しています。 毎月、ワークシート20枚の更新を行うのは大変なので、 今回”データシート”として全ての表を1シートにまとめ、 表A・表B・表Cはデータシートの表から必要な値を取得するように 修正を行いました。

関連するQ&A