Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

マクロでExcelファイルのサイズを削減する方法|すぐ試せる11の簡単テクニック

ExcelでVBAコードを使用していると、ファイルサイズが次第に大きくなっていくことに気づくことがあります。ファイルが大きくなりすぎると、Excelの動作が遅くなり、作業効率も低下してしまいます。そのため、ファイルサイズの削減は非常に重要です。この記事では、マクロを使ってExcelファイルのサイズを削減する方法を詳しく解説します。ファイルサイズに関するさまざまなお悩みを解決するヒントになれば幸いです。

マクロでExcelファイルサイズを削減する11の効果的な方法

Excelファイルのサイズをマクロで削減するために、実践的な11の方法をご紹介します。どれも簡単に試せるものばかりなので、すべて試してみて、自分に最も合った方法を見つけてください。小さな工夫が大きな問題を解決することもあります。

1. Excelファイルをバイナリ形式で保存する

最初にご紹介するのは、最も効果的な方法である「バイナリ形式での保存」です。このファイル形式を使うことで、Excelファイルのサイズをある程度削減できます。手順は以下の通りです。

手順

  • まず、リボンの[ファイル]タブをクリックします。
  • 次に、[名前を付けて保存]を選択します。
  • [名前を付けて保存]画面から[参照]を選びます。
  • 続いて、ファイルの種類を変更します。現在のファイルがマクロ有効ブック(.xlsm)の場合、これをバイナリブック(.xlsb)に変換します。[ファイルの種類]のドロップダウンを開きます。
  • [Excel バイナリ ブック]を選択します。
  • 最後に[保存]をクリックします。すると、ファイルサイズが変化しているのが確認できます。バイナリ形式では、マクロ有効形式と比べてファイルサイズが小さくなります。

2. 未使用のVBAコードを削除する

過去に作成したものの、現在使用していないVBAコードが残っていることがあります。VBAコードはファイルサイズを増加させる要因となるため、未使用のコードを削除することは、ファイルサイズ削減の効果的な対策になります。また、不要なコードはExcelの動作を遅くする原因にもなるため、快適な作業環境を保つためにも、こまめに整理しておきましょう。

3. 冗長なコードを取り除く

冗長なコードを削除してコードを最適化することでも、ファイルサイズを削減できます。例えば、VBAでセルの値を太字にする場合、多くの人はまずセルを選択してから太字にするという2段階のコードを書きがちです。

Sub Bold_cells()
Range("B1").Select
Selection.Font.Bold = True
End Sub

このコードでは、セルを選択してからフォントを太字にする2行を使っています。この冗長性をなくすには、以下のように1行で書けます。

Sub Bold_cells()
Range("B1").Font.Bold = True
End Sub

このようにコードを簡潔にすることで、コード自体のサイズが減り、結果としてExcelファイル全体のサイズ削減にもつながります。

4. コメント文(注釈)を減らす

VBAコードの可読性を高めるためにコメント文を多用することがありますが、コメントが多すぎるとコードが肥大化し、それに伴ってExcelファイルのサイズも大きくなります。コードを短くするために、必要最小限のコメントだけを残し、不要なものは削除しましょう。コメント文を減らすことで、コードサイズとファイルサイズの両方を抑えられます。

5. VBAモジュールをエクスポートして再インポートする

もうひとつのシンプルな方法として、作成済みのVBAモジュールを一度すべてエクスポートし、その後再度インポートする方法があります。この方法のメリットは、エクスポート時にモジュールのサイズが圧縮され、再インポートした際にもその圧縮された状態が維持される点です。その結果、Excelファイル全体のサイズがある程度削減されます。

6. マクロを無効化して保存し直す

VBAコードを使用している場合、通常はマクロ有効ブックとして保存する必要があります。ここで使える小技が、「マクロを無効にした状態でワークブックを保存し、再度開いた後にマクロを有効化する」という方法です。これにより、ファイルサイズが増大する内部構造上の問題を解消できる場合があります。手順はとても簡単ですが、状況によっては効果的なテクニックです。

7. VBAコードで未使用領域を削除してファイルサイズを最適化する

「データ量は少ないのにファイルサイズが異常に大きい」という問題に直面することがあります。これは、データ範囲を超えた領域に書式設定などが適用されていることが原因です。未使用領域は手動でも削除できますが、VBAコードを使えばより確実です。以下の手順で試してみましょう。

手順

  • リボンの[開発]タブを開きます。
  • [コード]グループから[Visual Basic]を選択します。
  • Visual Basicエディターが開いたら、[挿入]タブから[標準モジュール]を選択します。
  • モジュールウィンドウに以下のコードを貼り付けます。
Sub RemoveUnused()
    Dim cell_last As Range
    Dim ans
    Dim row_last As Long, column_last As Long, position_of_last_dot As Long
    Dim file_name_full As String, name_of_file As String, target_name As String
    If WorksheetFunction.CountA(Cells) = 0 Then Exit Sub
    Application.ScreenUpdating = False
    ans = MsgBox("Do you need to generate a copy of this Workbook?", vbQuestion + vbYesNoCancel)
    If ans = vbCancel Then
        GoTo ExitSub
    End If
    If ans = vbYes Then
        file_name_full = ActiveWorkbook.FullName
        If file_name_full = "" Then
            MsgBox "Please run the macro after saving the file"
            GoTo ExitSub
        End If
        position_of_last_dot = InStrRev(file_name_full, ".")
        target_name = WorksheetFunction.Replace(file_name_full, position_of_last_dot, 0, "_" & Format(Now(), "yyyymmddhhmmss"))
        ActiveWorkbook.SaveCopyAs target_name
    End If
    row_last = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    column_last = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    Application.ScreenUpdating = False
    Rows(row_last + 1 & ":" & Rows.Count).Clear
    Columns(Split(Cells(1, column_last + 1).Address, "$")(1) & ":" & Split(Cells(1, Columns.Count).Address, "$")(1)).Clear
    ActiveWorkbook.Save
ExitSub:
    Application.ScreenUpdating = True
End Sub
  • リボンの[開発]タブに戻り、[コード]グループの[マクロ]を選択します。
  • マクロダイアログボックスが表示されるので、RemoveUnusedを選択して[実行]をクリックします。
  • このコードを実行すれば、Excel内の未使用領域を簡単に削除でき、ファイルサイズの削減にもつながります。

8. 空白行・空白列を削除する

データセットの中には、意図せず残ってしまった空白行や空白列が含まれていることがあります。これらの空白部分はデータセットを無駄に大きくし、Excelファイルのサイズ増加につながります。空白行・列を削除してからファイルを保存すれば、ファイルサイズの削減効果を実感できるでしょう。

9. データの書式設定を削除する

背景色の設定、罫線の追加、フォントスタイルの変更といったデータの書式設定は、Excelで非常によく使われる機能ですが、その分ファイルサイズを押し上げる要因にもなります。書式設定を削除するには、以下の手順に従います。

手順

  • まず、書式を削除したいデータ範囲全体を選択します。
  • リボンの[ホーム]タブを開きます。
  • [編集]グループにある[クリア]をクリックします。
  • [書式のクリア]を選択します。これでデータセットからすべての書式が削除されます。
  • 最後にワークブックを保存します。ファイルサイズが削減されていることを確認できます。

10. ファイルをZIP圧縮する

ExcelファイルをZIP形式に圧縮することでも、サイズを削減できます。ZIP圧縮を行うと、元のサイズから約10〜15%程度自動的に軽量化されます。圧縮後のファイルはそのまま他者と共有することも可能です。手順は以下の通りです。

手順

  • まず、Excelファイルを右クリックします。
  • [送る]を選択します。
  • [送る]メニューから[圧縮(zip形式)フォルダー]を選びます。
  • これでExcelファイルがZIPファイルに変換され、ファイルサイズが削減されます。

11. 画像を圧縮する

Excelで画像を扱っている場合は、画像の圧縮が不可欠です。画像はファイルサイズを大きくする主な原因のひとつだからです。ただし、圧縮の際は画質の低下に注意が必要です。Excel外であらかじめ画像を圧縮しておくことに加えて、Excelの内蔵機能でも圧縮しましょう。手順は以下の通りです。

手順

  • まず、圧縮したい画像を選択します。
  • リボンの[図の形式]タブを開きます。
  • [調整]グループから[図の圧縮]を選択します。
  • [図の圧縮]ダイアログボックスが開きます。[圧縮オプション][この図のみに適用する]のチェックを外します。
  • [電子メール(96 ppi):ドキュメント共有用にサイズを最小化]を選択します。
  • 最後に[OK]をクリックします。
  • ワークブックを保存すると、ファイルサイズが削減されていることが確認できます。

まとめ

この記事では、マクロを使用したExcelファイルのサイズ削減について、11の効果的な方法をご紹介しました。どの方法も実践的で、ファイルサイズの問題解決に役立ちます。これらのテクニックを活用すれば、Excelファイルのサイズを自在にコントロールできるようになるでしょう。ご不明な点があれば、お気軽にコメント欄でお尋ねください。

関連記事

  • ピボットテーブルでExcelファイルのサイズを削減する方法
  • [解決済み] 理由なくExcelファイルが巨大化する問題(10の対処法)
  • Excelファイルが大きくなる原因を特定する方法
  1. ExcelからCSVファイルを作成する6つの簡単な方法

    CSV(Comma Separated Values/カンマ区切り値)は、さまざまなデータ分析ソフトウェアで広く利用されている汎用的なファイル形式です。数値やテキストがプレーンテキストでそのまま保存されるため、編集や整理が非常に容易で、そのシンプルさから現在では最も人気のあるデータ交換形式の一つとなっています。Excelで管理しているデータを、他のツールで使えるようにCSV形式で出力したい場面は少なくありません。この記事では、ExcelからCSVファイルを作成する6つの簡単な方法を、画像付きの手順でわかりやすくご紹介します。 ExcelからCSVファイルを作成する6つの方法 ここでは、ある

  2. XMLファイルからExcelへデータを抽出する2つの簡単な方法

    この記事では、XMLファイルからExcelへデータを抽出する方法をわかりやすく解説します。XML形式は主にWeb上でデータを保存・やり取りするために使われており、パソコン内にも保存できます。しかし、XMLファイルの中身をそのまま確認するのは容易ではありません。そこで本記事では、2つの異なる方法をご紹介します。どちらの方法でも、XMLファイルから簡単にデータを抽出し、Excelで見やすい形に整えられるようになります。 XMLファイルとは? XML(Extensible Markup Language:拡張マークアップ言語)は、さまざまなアプリケーションやシステム間で読み取り可能な形式でデータを