• 締切済み

ワークシートの軽量化

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

みんなの回答

noname#79209
noname#79209
回答No.2

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

jellya_a
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • vba ワークシートを変数を用いて開くには

    初歩的な質問ですが、 ワークシートの書式が新しくなったことで、書き換えをすることになりました。 現在のエクセルファイルから、新しいエクセルファイルへ、セルの値を参照しながら VBAにて作業をしたいのですが、 Sub changesheet() Dim iname As String Dim wbname As String iname = InputBox("ブック名を入力", "対象ブックを入力") wbname = "シート2012(" & iname & ").xls" ActiveSheet.Range("P4").Value = Workbooks(wbname).Worksheets("Sheet1").Range("P4").Value End Sub この記載で実行すると、インデックスが有効範囲にありません とエラーになってしまいます。 変数(inputbox)を用いたセルの参照はどのように記述すればよろしいでしょうか? よろしくお願いします。

  • エクセル ワークシート操作

    エクセル VBAにてブックを閉じるときに作業をして追加した ワークシートを昇順、もしくは降順(名前、日付など)に 並び替えてから閉じるように する方法がわからないのですが? どのようにやるのでしょうか?

  • エクセルのワークシート

    エクセルのワークシート エクセルのブックを開いたときに、シートが3枚あったら そのまま開いて、 3枚なかったら1枚追加する、ということをしたいのですが どのようにすればよいか、教えていただけないでしょうか。

  • Excel ワークシート関数で参照セルのアドレスを固定値ではなく動的に記述したい

    皆様こんにちは。 Excel ワークシート関数で参照セルのアドレスを固定値ではなく、他のセルの値 (式の計算結果) を使用して動的に記述したいのですが、可能でしょうか。 一例ですが、 =VLOOKUP("山田 花子",Sheet2!A2:C100,3,FALSE) という式の参照先アドレス範囲開始行「2」を固定値ではなく、他のセルの値を使用して動的に記述したいのです。 また、参照先の終端である、「100」についても固定値ではなく、有効データ領域の終端を動的に取得する方法 (VBA の Worksheet.UsedRange.Rows.Count または Worksheet.UsedRange.Rows.Address に相当) が知りたいと思います。 どちらも、計算式そのものをVBAで動的に出力するのは容易なのですが、出力されたブックを手作業で編集する際の利便性も考慮すると、ワークシート関数だけで解決する方法も知っておいたほうがよいと思っています。 ご存知の方、コメントを頂けると幸いです。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3コピー元ワークシート3 という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • 新たなワークシートへのコピペVBA

    (1)Excelの一つのBOOKの中に複数のワークシートがあります。 (2)これらワークシートの中から、任意でいくつかのみを選びます。 (3)新たなワークシートを一つ作り、ここに、(2)で選んだワークシートを順番に横並びでコペピする。 上記をVBAで自動化させるには、どうしたらよろしいのですか?

  • Excelのワークシートの印刷について

    Excelのワークシートを印刷できないようにする方法があれば教えてください。恐らく、VBAを使うことになるんじゃないかなと思うんですが・・・よろしくお願いします。

  • Excel ワークシート関数の質問です

    エクセルのワークシート関数を勉強中です。よろしくお願いいたします。 Book1でBook2のデータを参照しています。Book2の参照範囲は名前の定義で「第X番」という名前で定義されています。Xは1-10までの番号であり、第1番から第10番までそれぞれ違う範囲を指しています。Book1のSheet1のA1セルに1-10までの番号を入れ替えるだけでその番号の名前の範囲を自動的に参照する方法はありますか?

  • VBAでブック内のワークシートを名前をつけて保存

    エクセルVBAで作業中のブックの一部のワークシート(2枚)を名前をつけて保存する方法を教えてください。 (例)  《ブックA》  sheet1 sheet2     sheet3 10/5     10個 10,000円    4個 25,000円 東京     25個 18,500円    6個 42,000円 というブックから『10/5 東京』というブックでsheet2,sheet3の内容を 保存したいのですが・・・ VBAは勉強し始めでほとんどわからないので教えてください。

専門家に質問してみよう