• ベストアンサー

2Mのエクセルファイルが重たすぎて困っています。

会社で使っているエクセル2003の容量が2Mあります。 このファイルは中身をいじることはないのですが オートフィルタで検索をかける コード一覧表です。 しかし中身が重過ぎてCPU使用率が100%になり すぐ固まってしまいます。 時間が経つと動き出します。 この現象を回避したいのですが どうすればいいのでしょうか? アクセスと言うものを使うべきなのでしょうか? アクセスに関しては全くの無知です。 でもそれしか回避方法がないのならがんばってみようと思っています。 よろしくお願い致します。

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

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

数式の再計算を無駄に行っているのかも知れない。 >このファイルは中身をいじることはないのですが それなら、コピーして、値だけ貼り付けて、数式を消して、検索が早くならないかやってみるのは堂でしょう。 コピーが大変でしょうか。VBA(マクロの記録を改変)でもできそう。 元ファイルのバックアップは必ず取得しておくことは必須です。 ーーー (1)アクセスにデータを移すこと http://www.relief.jp/itnote/archives/000543.php など多数 (2)簡単な検索(クエリ・パラメータクエリを作成) http://office.microsoft.com/ja-jp/access/HA011170771041.aspx など多数 なら簡単と思います。

noname#150498
質問者

お礼

バックアップとるようにします。 サイトの紹介ありがとうございます。 大変参考になりました。ご回答ありがとうございます。

その他の回答 (4)

  • piyotty
  • ベストアンサー率44% (62/138)
回答No.4

上書き保存せずにずっと使っていると、作業用一時データが溜まってしまい、重くなることがあるようです。 >時間が経つと動き出します。 このことから、無駄な領域を検索対象にしているように思われます。 (固まっているわけではなく、ずっと計算している状態) すべてのデータを新しいブックにコピーし、新規保存すると軽くなることがあるようですので、お試しになっては如何でしょうか。 なお、コピーの失敗などに備えて、念のために元ファイルのバックアップは必ず取得しておくことをお勧めします。 また、検索対象範囲を「リスト」として設定してしまうのも手です。 《リストについて》 http://office.microsoft.com/ja-jp/excel/HP010044331041.aspx?pid=CH010129821041 《リストを作成する》 http://office.microsoft.com/ja-jp/excel/HP010317161041.aspx?pid=CH010006341041 こちらの方が、若干検索速度がはやいように思います。 アクセスはデータベースなので、検索速度は早いです。 検索条件の保存も出来ますし、検索対象データが大量にあるならアクセスの方が便利かもしれません。

参考URL:
http://office.microsoft.com/ja-jp/excel/HP010044331041.aspx?pid=CH010129821041
noname#150498
質問者

お礼

コピー試してみます。 サイトの紹介ありがとうございます。 大変参考になりました。ご回答ありがとうございます。

noname#97729
noname#97729
回答No.3

CSVにすることができるなら、 http://www.vector.co.jp/soft/win95/util/se245615.html http://www.vector.co.jp/soft/win95/util/se288980.html このようなものを使うのはどうでしょう。

noname#150498
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 たぶん、重い要因は別にあると思います。 私は、ふだん使っているファイルは、その倍以上の5Mで、オートフィルタを使っていますが、少しも重いとも感じませんし、また、CPUの使用率が100%にもなりません。(ただし、エラーが発生した場合は、そのブックは残さず、バックアップを使っています。外部からの値の取得やシート間の値のやり取りは、全てマクロで行っています。唯一、特殊な関数は、INFO()という使っています。-これも以下の揮発性関数に含まれます。) まず、数式を疑うべきですね。揮発性関数と言いますが、 RAND(),TODAY(),NOW(), OFFSET(), INDEX(), VLOOKUP(), INDIRECT() 等 また、FREQUENCY() などの配列関数 を多用すると、問題が起きます。 または、配列数式など、その数式の中で値を確保できずに、起動して、セルなどから、値を再取得するような数式や関数を使用すると、そのような状態になります。一旦、そのような設定で大きなファイルを作ってしまうと、なかなか直すのは大変のようです。

noname#150498
質問者

お礼

数式にもあまり詳しくなく、何が入ってるかもよくわからない状態です。 大変参考になりました。ご回答ありがとうございます。

回答No.1

コード一覧表をある程度の規則で分割できないのでしょうか たとえば 1-99まではA.xls 100-1000まではB.xls などと言う風に 検索のときにどのファイルを検索するか絞り込めると思うので 固まるほど重くならなくてすむと思います

noname#150498
質問者

お礼

分割して利用も出来ますね。 大変参考になりました。ご回答ありがとうございます。

関連するQ&A