ガシガレ

社内SEのヒトリゴトです。

【Excel】ファイルが重い、遅いときに試すこと(Excel2010 Ver)

※2016/12/6 記事更新 リンク切れを削除しました。

私が今までの社内SE歴8年(通算)の中でよく質問されたことや、便利に感じている機能などを、時々紹介していきたいと思います。
※都合上、Excel2010に準拠しております。

f:id:lksdsw:20150220203059p:plain

 今回のお題は『Excelファイルが重たいときに試すこと』です。

このテーマはネット上にはすでに色々解説しているサイトがあります。

しかし、当ブログではコンセプトとして社内SE視点を織り交ぜながらご紹介させて頂きたいと思っております。ご了承くださいませ。
(社内向けに配布した資料を手直しして作成しております)

さて、ユーザーからときどき以下のような問合せがあります。

  • 「やたらと開くのが遅い」
  • 「作業中にすぐ固まる」
  • 「ファイルが大きすぎてメールに添付できない」

こんな時は以下の点に着目して調べてみましょう!
ちなみに私が確認する順番に記載しております。今までの経験上、怪しい順番です。笑

※以下作業の前に、対象ファイルのコピーを作成してから作業をすることを強くオススメします。誤って上書き保存をしてしまって必要なデータまで消えてしまった、では取り返しがつきませんので!

  1. シート上に余計なデータが残っていないか
    サイドバーに着目すると、シート上に大体どの位のデータが入っているのか分かります。

    f:id:lksdsw:20150220203825p:plain


    サイドバーが小さければ小さいほど、シート上のデータが多いということになります。不要データがある可能性を疑います。
    ⇒何行目以降不要、と分かっていれば行全体を削除してあげればよいです。

    【対策】
    行番号をクリックして行全体を選択、その後 [Ctrl] + [Shift] + [ ↓ ] で、指定行からExcel最終行を一気に選択できます。その後、右クリック → 削除 でよいでしょう。 削除の際は本当に必要なデータがないか、よく確認してくださいね。


  2. 見えないオートシェイプが残っていないか
    見えないオートシェイプってなに?ってところなんですが、シート上でオートシェイプを作成し、その後セル範囲を削除したときに、オートシェイプだけが削除されずに残ってしまうことがあります。

    f:id:lksdsw:20150216204945p:plain
    こんな感じで表と殆ど見分けが付かない場合もあります。
    ※Excel2003以前は行削除をしてもオートシェイプは削除されなかったので、特にファイルが「xls」形式の場合は注意してみてください。

    こんな風に見えないオートシェイプが有る状態で、セル範囲やシートをコピーしつづけていくと地獄状態になります。
    私が経験した中では数万もの矢印が隠されていることがありました。

    【対策】
    オートシェイプを一括で削除しましょう。[ Ctrl ] + [ G ] または [ F5 ]キーでジャンプ機能が使えます。 「セル選択」ボタンをクリックし、「オブジェクト」を選択すると、シート上のオートシェイプを一括で選択できますので、その後削除してしまいましょう。

    ※必要なオートシェイプのみ、別シート等に退避させておくとよいです。もしくは、Shiftキーを押しながらクリックをすることで、対象のオブジェクトのみ選択解除可能です。

    f:id:lksdsw:20150216205406p:plain


  3.  不要な「非表示のシート」が隠れていないか

    非表示にしているシートにゴミが大量に隠れている場合があります。

    【対策】
    再表示して中身を確認してみましょう。シート見出しで右クリック、「再表示」がアクティブになる場合は非表示のシートが隠されています。

    f:id:lksdsw:20150216205630p:plain

    「全ての非表示シートを再表示にする」という機能は残念ながらExcel2010までにはありませんので、頑張って1つずつ再表示して確認して下さい。

  4. 巨大な画像が貼り付けられていないか
    これはPowerPointやWordにも共通しますが、巨大画像が何枚も貼り付けられていると画像ファイルが大きくなります。
    巨大画像を縮小表示しているパターンが多いです。
    画像を右クリック⇒「サイズとプロパティ」で、拡大率を確認してみましょう。
    f:id:lksdsw:20150216211017p:plain
    上図は、図を18%で表示していることを表しています。こんな小さな表示でよいのに、元画像の大きな情報を保持しているということです。
    ⇒ 表示状態で100%になるようにしてあげます。

    【対策】
    元画像をコピー ⇒ 適当なセルで右クリック ⇒ 「図」として貼り付けを行います。
    f:id:lksdsw:20150216211431p:plain

    下のような感じで貼り付けできました。100%になっているのが確認できます。画像もほとんど劣化していませんよね。この後に元画像を削除してあげれば、かなりサイズを圧縮できるハズです。f:id:lksdsw:20150216211843p:plain

    私は感覚的にこのように対応するクセが付いてしまっていますが、、複数枚ある場合は「図の圧縮」が便利です。

    f:id:lksdsw:20150220205258p:plain

    状況に応じて解像度を指定しましょう。


  5. そもそもデータが多い
    ピボットテーブルやグラフの表示のため、大量の元データ(数万行以上)が含まれる場合です。このようなときは、以下のように対応しましょう。

    ◆ピボットテーブルの場合
     ⇒ピボットテーブルの範囲をコピーし、
      別領域へ値のみ貼り付け、その後、書式のみ貼り付けを行います。
      その後、元データは削除してしまいます。

    f:id:lksdsw:20150217082000p:plain
    こうすれば、ピボットテーブルと同じレイアウトでデータを表示することができます。

    ◆グラフの場合
     ⇒グラフをコピーし、図として貼り付けする。
      
    その後、元データを削除します。(ピボットの場合と考え方は同じ)

    当然ですが、ピボットもグラフも編集をしないことが前提です!
    (プレゼン資料や、客先提示資料の最終版にする場合を想定)
    元データの削除は慎重に行ってくださいね。


  6. ブックの共有、変更履歴が保存されていないか
    複数ユーザーで一つのExcelファイルを管理するのに便利な機能ですが、過去の履歴を保持することにより、ファイルサイズが肥大化していくことがあります。

    ブックの共有は「校閲」タブの中にあります。

    f:id:lksdsw:20161206122547p:plain


    f:id:lksdsw:20150220201227p:plain

    【対策】
    履歴を定期的に削除してあげましょう。一旦共有を解除して、再度共有化してあげるとよいです。

    ・・・個人的にはファイルの共有はファイルが壊れやすく、あまりオススメしたくない機能です。最終保存者は記録されますが、トラブルの元にもなりますので…

・・・・・・・・・・・・・・・・・・・・・・・・・・・

以上です。
私が対応してきた中では、ほとんどが上記の原因によるものでした。
ときどきファイルが壊れているのか、どうしようもないこともありましたが、そのような場合はシートを一つずつ新しいファイルにコピーしてファイルを作成しなおしました。


繰り返しになりますが、上記対応をするときには、必ず対象ファイルのコピーを取っておくか、名前を付けて保存をしておきましょうね。

少しでもお役に立てば幸いです。