- 締切済み
エクセルのワークシートが重くなる!
たまにエクセルで起きるのですが、 特定のワークシートが重くなる(キー、マウス操作の待ち時間が長い。RAMメモリ不足から来る重さの感覚に近い。)ことありませんか。 その原因、対処方法がわかる方はいないでしょうか。 そのワークシートの特徴、及び使用環境を以下に書きます。 (1)画面のスクロールが重くなる。 (キー、マウスどちらでも) (2)セル入力すると重くなる。(内容消去でも重くなる) (3)データ量は必ずしも大きくない。(1シートのみのファイルで数十キロでも起こる) (4)重いワークシートをシートコピーすると、そのコピー(Sheet(2))は必ず重くなる。 (5)重くないワークシートをシートコピーしても、そのコピー(Sheet(2))が重くなることがある(ほとんど起きないが過去数例あった)。 (6)新規の空のワークシートを作成し重いワークシートのデータを「全範囲コピー」し、新規ワークシートに「貼り付け」ると重くならない。 (7)マクロの有無によらない。 (8)外部参照ファイル(リンク)の有無によらない。 当社はウイルスバスターのコーポレートエディションを導入しインターネット経由でネットワーク内全てのパソコンのおいて随時パターンプログラムを更新していますので、コンピュータウイルスではないと推測しています。 たまにしかめぐり合わないので、(6)で対処しています。 以下に私の使用している環境を示しますが、他のPCでも同様に起こるので、どうもハードではなくファイルそのものに問題があるのでは思っています。 (環境) OS:Windows2000SP3 AP:EXCEL2002 CPU:CELERON 1.5G HDD:20G MEM:256M
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- dejiji-
- ベストアンサー率38% (327/858)
あと一つ思い出したのですが、シートにグラフは無いでしょうか。環境が違うのですが(9×系で2000) この場合、グラフのフォントが問題になり、シートコピーを繰り返すと最終的には、エラーメッセージが出て動けなくなる。という現象がありました。 NT系なのでそこまで行かないで重くなる可能性もあるのでは。 この場合、グラフオプションでフォントの自動調整を外すと効果がある。 それから、シートコピーのエラーはエクセル2000ではエラーの出る可能性があった。この場合は、tsutsu1971さんの行っている(6)の方法が回避策としてとられていた。
- dejiji-
- ベストアンサー率38% (327/858)
Ctrl+Endでセルの最後に飛びます。これでシートの大きさが分かると思います。 特定のファイルと言うことなのですが、特定のPCで作成されたファイルでしょうか。どのPCでも同じような状況なのでしょうか。テンプレートに問題がありませんか。新規ワークシートなら問題ないということなら、問題のテンプレートがあるような気がするのですが。
お礼
>特定のファイルと言うことなのですが、特定のPCで作成されたファイルでしょうか。 「特定のPCで作成」というわけではアリマセン。特定のファイルということです。そのファイルをどのPCで開いても同様の症状がでます。 >テンプレートに問題がありませんか。 そこなんですよ。 症状(5)・・・重くないワークシートをシートコピーしても、そのコピー(Sheet(2))が重くなることがある(ほとんど起きないが過去数例あった)。 にもかいたように重くないワークシート何度かシートコピーして突然重いワークシートに変化することがあるんデス(それまでのシートコピーでは重くならなかった)。仕方ないので(6)で対処し、再度印刷設定しています。 アドバイスありがとうございました。
- ja7awu
- ベストアンサー率62% (292/464)
一応、次の操作で確認してみてはどうでしょうか。 ・ Alt + F11 で Visual Basic Editorを開きます。 ・ 次の1行をコピーします。 ActiveSheet.UsedRange.Select ・ イミディエイト ウィンドウ(表示されていなかったらCtrl + G) に貼り付けて、 その行にカーソルがある状態で<Enter>を押します。 ・ Alt + Q で シートに戻ります。 ・ 使っているセル範囲が選択されていますので、データの範囲と比べてください。 ・ データの範囲より多く選択されている場合は、不要な設定(書式など)があると 思われますので、余分な「列」または「行」を「削除」(消去ではない。 選択した行または列を右クリックで「削除」)します。 ・ 以上を繰り返し、UsedRange と データ範囲が合致するようにします。 ・ これを一度でも使用したシートで全て行うか、不要なシートは、削除します。 直接、データ範囲外の列、行を削除してもいいのですが、一応、原因追求のためです。 これで直りませんか。
お礼
アドバイスありがとうございます。 早速、試してみました。けど使っているセル範囲とデータの範囲は一致してしまいました。 ただ、データ範囲外の不要なデータを探す方法として大変有用なので今後原因を考える一つの手段として参考になりました。ありがとうございます。
- papayuka
- ベストアンサー率45% (1388/3066)
今回のケースにあてはまるか解かりませんが、、、 コピーを繰り返したシートでオートシェープが何重にも重なっていて重くなった事があります。 Sub Test() Dim sh As Shape, cnt As Long cnt = 0 For Each sh In ActiveSheet.Shapes cnt = cnt + 1 Next sh MsgBox cnt End Sub
お礼
早速のアドバイスありがとうございます! 過去、オートシェイプの貼付すぎで症状(1)画面のスクロールが遅くなるというケースはありました。上記のVBAはオートシェイプの個数を数えるのに便利ですね。参考にさせていただきます。 ただし、「オートシェイプの貼付すぎ」は症状(2)セル入力の重さには影響しないようなので(全くオートシェイプ貼付を行っていないワークシートでも(2)は起こる)原因を特定できなくて困ってます。
お礼
重いシートにはグラフも無いんですよ。もう一度整理すると ●マクロ無し ●オートシェイプ無し ●外部参照のリンク無し ●グラフ無し ●文字フォント1種類 ●罫線2~3種類 ●セルの書式設定もせいぜい文字の横位置(中央、標準)程度しかいじらない。色も罫線、文字とも黒のみ。 上記のような場合、つまり、ごくシンプルな表(線太さ2種類。黒のみ)の掛け算と足し算のワークシート(せいぜい2ページ程度)でも重くなるんですよね。例えば簡単な見積内訳書のようなものでも。 年に数回レベルでしか出会わないのであきらめて(6)で対処しようかなと思います。 私の身近には全く同じ症状で困っている人(会社も、PC環境も異なる)、数人いるんですけど…これってバグっすか?