- 締切済み
ワークシートの軽量化
エクセル2000の質問なのですが、 ワークシートが20枚程度あるブックを使用しています。 すべてのシートには表があり、印刷範囲外に表に入力する値が記載してあり、その値を参照して表を作成していました。 似たような表ばかりなので、新しいシートを追加しそのシートに表をまとめ、そのシートから値を取得するように変更したのですが、 元のデータの倍(1.6M)の重さになってしまい かなり重たいブックになってしまいました。 どうしたら軽くなるのか教えていただきたいです。 VBAを使用すれば問題が解決するのであれば その方法も教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
> 似たような表ばかりなので、新しいシートを追加しそのシートに表をまとめ、 > そのシートから値を取得するように変更したのですが、 当然、各シートの印刷範囲外にあったデータは削除してますよね? > 似たような表ばかりなので、 纏めすぎて、検索側に余計な絞り込み用関数が増えてしまったとか...
- imogasi
- ベストアンサー率27% (4737/17069)
すらすらと質問文章が書いてあって、良くわからない。 変更点は今まで自シート参照を、他シート参照に変えたのかな。 それでファイル容量が倍になったといわれても、定量的に答える技量のある方は居ないのではないかな。 >VBAを使用すれば問題が解決するのであれば 方法を教えるというよりも、質問者が(その域にあるのかどうかわからないが)VBAの基礎的なところまでは勉強してもらわないと。 関数式をやめてVBAによる他シートセルの値を代入する方法に改める 方法はあると思う。 バッチ処理的な処理で済むならともかく、関数式は即座に反応する方式なので、VBAでそれを実現するのも大変と思う。
補足
説明不足ですみません。 ブックにはワークシートが20枚程度あります。 ワークシートaにはA、bにはB、cにはCの表が記載してあります。 aの印刷範囲外にはA’という計算式の入った表があり、 表AはA’の値を引っ張ってきて作成してあるので、 表AにはA’の対応するセルが”=”で入力されています。 表A・表B・表Cはそれぞれ別の表ではなく、 一部を重複して使用しています。 毎月、ワークシート20枚の更新を行うのは大変なので、 今回”データシート”として全ての表を1シートにまとめ、 表A・表B・表Cはデータシートの表から必要な値を取得するように 修正を行いました。
補足
> 当然、各シートの印刷範囲外にあったデータは削除してますよね? 削除しています。 > 纏めすぎて、検索側に余計な絞り込み用関数が増えてしまったとか... 特に関数は使用しておらず、 ”=”で引っ張ってきているだけなのですが・・・