Yahoo! 知恵袋

IDでもっと便利に新規取得

ログイン

  • Yahoo! JAPAN
  • ヘルプ

東北の生産者を応援「復興デパートメント」

  • トップ
  • カテゴリ
    大カテゴリ
    エンターテインメントと趣味
    暮らしと生活ガイド
    インターネット、PCと家電
    健康、美容とファッション
    ビジネス、経済とお金
    生き方と恋愛、人間関係の悩み
    子育てと学校
    職業とキャリア
    マナー、冠婚葬祭
    ニュース、政治、国際情勢
    教養と学問、サイエンス
    スポーツ、アウトドア、車
    地域、旅行、お出かけ
    コンピュータテクノロジー
    Yahoo! JAPAN
    おしゃべり、雑談
    その他
    カテゴリ一覧
  • 地域
  • ランキング
  • 回答ひろば

いますぐ利用登録!

Q&A 知恵ノート

条件を指定

質問する

知恵ノートを書く


現在位置:
知恵袋トップ
>
インターネット、PCと家電カテゴリ選択
知恵袋トップ
エンターテインメントと趣味
暮らしと生活ガイド
インターネット、PCと家電
健康、美容とファッション
ビジネス、経済とお金
生き方と恋愛、人間関係の悩み
子育てと学校
職業とキャリア
マナー、冠婚葬祭
ニュース、政治、国際情勢
教養と学問、サイエンス
スポーツ、アウトドア、車
地域、旅行、お出かけ
コンピュータテクノロジー
Yahoo! JAPAN
おしゃべり、雑談
その他
>
ソフトウェア >
Office系(Word、Excel) > エクセル ~重い...


ここから本文です

この知恵ノートを「知恵コレクション」に追加しました。

追加した知恵ノートはMy知恵袋の「知恵コレクション」ページで確認できます。

「知恵コレクション」に登録済みです。

再登録しました。

追加に失敗しました。

ノートに戻り、もう一度やり直してください。

すでに1,000件のノートが登録されています。

新しく追加したい場合は、My知恵袋の「知恵コレクション」ページで登録されているノートを削除してください。

追加できませんでした。

ノートは削除されました。

知恵コレに追加する:10人

エクセル ~重いファイルを軽くする~

ライター:ziksu_zooさん(最終更新日時:2013/10/23)投稿日:2012/4/28 アドバイス受付中!

  • ナイス!:

    9

  • 閲覧数:84551
  • 付箋(アドバイス)指数普通
  • ノート
  • アドバイス
  • 関連Q&A
  • 履歴

印刷用のページを表示する

エクセルファイルが重くなる原因は様々です。軽くするには、何によって重いのかをまずは突き止める必要が有ります。
 
また、一般的に重いと言う場合には、

  • ファイルサイズが大きい
  • 動きが遅い

の二通りがあります。ここでは前者について取り上げます。
後者についてはまたいずれ。
 

書式

書式のせいかどうかを確認するのは、一旦シート全体の書式をクリアし、別名で保存してみるのが手っ取り早い方法です。

ただしフィルタで非表示になってる行がある場合は先に解除してください。
 

手順
①全シートの全範囲を選択
②編集→クリア→書式
(2007以降、ホーム→クリアアイコン→書式のクリア)
③名前をつけて保存


 これで大幅にサイズダウンした場合は、不要な範囲にまで書式が設定されています。無駄な書式設定はクリアしましょう。



シートが多くてフィルタの確認が面倒な場合は、下記マクロにて。

 フィルタ解除のマクロ

  • Sub 全シートのフィルタ解除()
        Dim mySh As Worksheet
       
        For Each mySh In Worksheets
            mySh.AutoFilterMode = False
        Next
    End Sub

 

データ量

書式同様、一旦シート全体の数式と値をクリアし、別名で保存してみるのが手っ取り早い方法です。

フィルタで非表示になってる行があれば解除してから実施してください。

手順
①全シートの全範囲を選択
②DELETEキー
③名前をつけて保存

 
これで大幅にサイズダウンした場合は、データ量(それに伴う計算式)が多過ぎるという事になります。抜本的な解決策は、データを作業ファイルから減らすしか有りません。データはデータとして別管理し、必要な部分だけを抜粋して使うという事です。

注意

  • データを切り離したからと言って、切り離したデータファイルに安易にリンクするのはお勧めしません。計算式が外部ファイルの広範囲を参照している場合、それだけで外部ファイルより重くなる場合が有ります。

 

 

見えない図形

図形が怪しいかどうかを確認するには、まずは試しに、一つ図形を作ってみてください。直線でもなんでも構いません。その時に左上の名前ボックスに図形の名前が表示されますが、その後ろにつく番号に注目を。番号は図形の種類に関わらず連番でつけられます。つまり、その番号がとんでもなく大きい場合は、図形が蓄積されている可能性が大です。

 

しかしながら、図形の盲点は、行削除や列削除では消えないという事です。見た目上は見えなくなり、消えたように感じるのですが、枠線や画面隅に同化し、しっかりと存在しています。点になり、一箇所に大集結している場合も有ります。

 

そういったファイルから、別ファイルに貼り付けを繰り返していると、地縛霊のような図形が、知らず知らずにどんどん蓄積されていくのは言うまでも有りません。

 

見えない図形の有無を調べるには、下記手順で、全図形を選択して確認します。
 

手順

  • ①F5キー→セル選択→オブジェクトにチェック→OKをクリック

    ※これで全ての図形が選択される
    ②見えない図形でも、選択されているマークだけは表示されるので、 どこに有るかの確認が可能
    ③選択された全ての図形が不要なら、そのままDELETEで削除
    ※見えない図形のみ消すなら、図形選択で見えない図形のみ選択し直してから削除する


ただし、この作業はシート毎に確認する必要が有ります。

これはマクロを使うともっと簡単になります。

アクティブブックの図形の総数と、見えない図形の数をリストにする

  • Sub 図形リスト()
        Dim BkName As String
        Dim mySh As Worksheet
        Dim myShp  As Shape
        Dim i As Integer
        Dim j As Long
         Dim myList() As Variant
       
        BkName = ActiveWorkbook.Name
        ReDim myList(1 To Worksheets.Count, 1 To 3)
       
        i = 0
        For Each mySh In Worksheets
            i = i + 1
            myList(i, 1) = mySh.Name
            myList(i, 2) = mySh.Shapes.Count
           
            j = 0
            For Each myShp In mySh.Shapes
                With myShp
                    If .Height + .Width = 0 Or _
                        .Top + .Height = 0 Or _
                        .Left + .Width = 0 Then
                        j = j + 1
                    End If
                End With
            Next
            myList(i, 3) = j
        Next
       
        With Workbooks.Add
            With .ActiveSheet.Range("A1")
                .Value = BkName
                .Offset(1).Resize(, 3).Value = _
                    Array("シート名", "図形総数", "見えない図形")
                .Offset(2).Resize(UBound(myList), 3).Value = myList
            End With
        End With
    End Sub

アクティブブックの見えない図形を全て削除する

  • Sub 見えない図形削除()
        Dim mySh As Worksheet
        Dim myShp  As Shape
        Dim i As Long
       
        i = 0
        For Each mySh In Worksheets
            For Each myShp In mySh.Shapes
                With myShp
                    If .Height + .Width = 0 Or _
                        .Top + .Height = 0 Or _
                        .Left + .Width = 0 Then
                        i = i + 1
                        .Delete
                    End If
                End With
            Next
        Next
       
        If i Then
            MsgBox ActiveWorkbook.Name & _
                "から見えない図形を" & i & "個削除しました"
        Else
            MsgBox "見えない図形は有りません"
        End If
       
    End Sub

  

 

画像

特に写真を貼り付けている場合、写真の解像度が高すぎるとこれまた重くなります。そもそもエクセル上の画像に、そこまでの解像度が本当に必要なのか、そこらへんを吟味した上で、不要ならば、図の圧縮をするか、コピーしてJPEG等で貼り付け直し、元の画像は削除する等してみて下さい。

 

 

ピボットテーブルの設定

同じブック内のデータを元にピボットテーブルを作成しているなら、下記設定をしてみて下さい。ファイルサイズが間違いなく軽くなります。

手順

  • ①ピボットテーブルを選択し右クリック
    ②オプションをクリック
    ③「表のレイアウトと共にデータを保存する」のチェックを外す
    ④OKをクリック
    ⑤名前をつけて保存

 

これにより何か不都合が出たら、元の設定に戻せば良いだけですから、お手軽ですよね?私は積極的にお勧めします。

 

ただし、このチェックを外すと、ファイルを開いて、一番最初にピボットテーブルを編集しようとする時だけ「データの更新」をする必要が有ります。それが面倒なら、オプションの「開くときに更新する」にチェックを入れておいてもいいでしょう。


この欄は、そうすると何故軽くなるのかを、うだうだ書いているだけなので、注意して下さい(笑)

  • ピボットテーブルを作成すると、まずは元データのコピーが作成され、それが、ブック内メモリに保存されます(キャッシュ)。もちろんそれは目に見える訳ではありません。 マイクロソフトサポートによると「隠しコピー」と翻訳されています。



    つまり、ピボットテーブルは、元データから直接出来上がっているのではなく、その隠しコピーを元に出来上がっているのです。


    「元データ → 隠しコピー → ピボット」というイメージです。



    元データのコピーをブック内に保存するんですから、当然その分重くなる訳です。

    裏を返せば、その保存をしなければ軽くなるという事です。そして保存しない場合に、最初だけ更新が必要なのは、隠しコピー領域にデータをセットする必要が有るからです。

 
 

無効な名前付き範囲

名前付き範囲自体は、うまく活用すると非常に便利な機能です。しかし、ファイルが重くなる正体の一つに、無効になっている名前付き範囲の存在が挙げられるのもまた事実です。

まずはそれら無効な名前が有るならば、掃除しましょう。

手順

  • ①Ctrlキー+F3キー
    「名前の定義」ダイアログを表示
    ②無効な名前は選択して削除
    ③名前を付けて保存

 

①でダイアログを開いた時に、ずらりと名前が並んでいたら、ほとんど無効な名前と思っていいでしょう。エクセルはシートのコピーを繰り返すと、そのファイル上で定義されていた名前全てが一緒にコピーされて行きます。それを繰り返すうちに、いつの間にか名前が蓄積され、このような事になります。


これを一つずつ選択して削除していけばいいのですが、中には当然ですが正常に機能しているものも存在します。自分が定義した名前や「Print_Eria」等がそれに当たります。

また数が多いと、手作業で削除するのは非常に面倒なので、やはりマクロを使うのが簡単です。

無効の可能性が高い名前を一括削除する

  • Sub 名前削除()
        Dim myName As Name
        Dim myWb   As Workbook
       
        Set myWb = ActiveWorkbook
        On Error Resume Next
       
        For Each myName In myWb.Names
            With myName
                .Visible = True
                If InStr(1, .RefersTo, "REF") _
                    + InStr(1, .RefersTo, "N/A") _
                    + InStr(1, .RefersTo, "\") _
                    + (InStr(1, .RefersTo, "$") = 0) Then .Delete
            End With
        Next
     
        On Error GoTo 0
        Set myWb = Nothing
    End Sub

 
実はこれでも食い下がって消えない名前が残る事が有ります。これらは、Ctrlキー+F3キーでダイアログを表示し、一つずつ選択して手作業で消して下さい。


 

さて、これらでそれなりにファイルは軽くなると思います。
一度、お試しあれ! 

  • ナイス!9
  • 違反報告

アドバイス(このノートのライターへのメッセージ)を送る

このノートはどうでしたか?  いいと思ったことや、こうしたらもっとよくなるといったメッセージを送りましょう! ノートの内容やライターについて質問がある場合は、Q&Aから質問してみましょう

アドバイスを送るには、
Yahoo! JAPAN IDでのログインおよび
Yahoo!知恵袋の利用登録が必要です。

利用登録ナビへ

感想アドバイス履歴

  • 送信日時:2012/12/06 16:07:39

    tonzura_chiさん

    学んだ

もっと見る

このノートに関するQ&A

このノートに関するQ&Aは、まだありません。

このノートについて質問する

このノートについてライターの方に質問できます。

※ライターの方から必ず回答をいただけるとは限りません

※別ウィンドウで開きます

新登場!! Step Chips 手作り作品のハウツーが詰まったiPhoneアプリ

あなたにおすすめの知恵ノート

  • 重いパソコンを軽くする方法
  • 何故重いものと軽いものは同時に落下するのか
  • 太鼓さん次郎を軽くする方法!
  • パソコンを軽くする方法(2012/10/15改訂版)
  • 心を軽くし、楽な気持ちで生きる秘訣

あなたにおすすめのQ&A

  • エクセル2007でセル内に「0」値の非表示の方法を教えてください。 (2003でツール~オプション~表示の...
  • エクセルへJPEG貼り付け方法教えてください マイピクチャーにあるJPEGファイルをコピーしてエクセル...
  • エクセルVBAマクロで複数検索で別シートに行コピーしたい 内容は以下の通りです。 <顧客名簿-デ...
  • エクセルでの指数の表示方法を数字の右肩にするやり方 いつもお世話になっています。エクセルについ...
  • エクセルのデータをパワーポイントに取り込み 1、エクセル2000に名前やコメント等のデータを入力しま...

このページのトップへ

PR

この知恵ノートのライター

グレード

グレード知恵ノートのグレード:1-2

ziksu_zooさん男性

日々エクセルと格闘しています。 トリャーー! ってか[続きを見る]

その他の知恵ノート(1件)
エクセルファイルの動きが遅い

[ノート一覧]

オーヴォ特別価格チケット販売中

知恵ノートランキング

  • 閲覧数
  •  
  1. 1位ヤフオクで毎回同じ検索をする...
  2. 2位効果があるダイエットサプリと...
  3. 3位【出品者の方へ】入札者認証制...
  4. 4位すぐわかる 確定申告の医療控...
  5. 5位超簡単!NHK受信料契約を、...

[一覧]

対象のノートがありません

[一覧]

ランキング対象日:2/17

ピックアップ

マーブルチョコチーズケーキ♡
♥︎クリームチーズ …200g を室温で柔らかくしておきます。♥︎薄...
まっくろくろすけ(笑)
まっくろくろすけを描こー❤️ まず白を塗って、乾いたら、バッ...
造花とワイヤーだけで作る お花...
材料はこちら!造花はダイソーで4.5本ワンセットの小さめのを...

[役に立つノートをもっと見る]

こんなノートがほしい! リクエストする

最大文字数100文字入力できます

リクエストが送信されました。

いただいたリクエストは、Yahoo!知恵袋スタッフが確認のうえ、ライターの方向けに書いていただきたいテーマとして掲出いたします。

続けてリクエストする

リクエストされている知恵ノートを書く

いま求められているのは、こんな「知恵」。お題をクリックして投稿してみましょう!

  • 初対面の人と打ち解ける会話テクニック
  • 気になる目の下のたるみを取る方法
  • なかなか痩せない太もものシェイプアップ法
知恵ノートを書いてみませんか?知恵ノートの書き方はこちら

知恵ノートとは?

役立つ知恵情報は、Yahoo!知恵袋公式Twitter@yahoochiebukuroをフォロー
本文はここまでです このページの先頭へ

Yahoo!Japan

Yahoo!検索データ 急上昇ワード

プライバシーポリシー - 利用規約 - ガイドライン - サイトマップ - ヘルプ・お問い合わせ
Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.