Excel VBAでバックアップ時の圧縮オプションを活用する方法

この記事では、Excel VBAを使用して、バックアップの際の圧縮オプションの活用方法について詳しく解説します。具体的なコード例、その詳細な解説、そして応用例を含めて説明しますので、Excelの操作を効率化したい方や、データ管理の効果を高めたい方におすすめです。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

バックアップの際の圧縮オプションとは

Excelのバックアップは、重要なデータの紛失を防ぐための基本的な作業です。しかし、バックアップファイルが多くなると、ディスクの容量を圧迫しやすくなります。この問題を解決するために、VBAを使用して、バックアップ時にファイルを自動的に圧縮する方法があります。

基本的な圧縮バックアップのコード


Sub BackupWithCompression()
    Dim SourceFile As String
    Dim DestFile As String
    Dim FSO As Object

    ' バックアップ元のファイルパス
    SourceFile = ThisWorkbook.FullName
    ' バックアップ先のファイルパス(.zip形式)
    DestFile = "C:\backup\" & ThisWorkbook.Name & ".zip"

    ' FileSystemObjectの作成
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ' 圧縮とバックアップ
    FSO.CopyFile SourceFile, DestFile, True

    Set FSO = Nothing
End Sub

このコードは、現在開いているワークブックを指定した場所に.zip形式でバックアップするものです。「C:\backup\」の部分は、バックアップ先のフォルダを指定する部分なので、適宜変更してください。

コードの詳細解説

1. `Dim`で変数を宣言しています。これにより、バックアップ元のファイルやバックアップ先のファイルのパスを格納することができます。
2. `ThisWorkbook.FullName`と`ThisWorkbook.Name`は、現在開いているワークブックのフルパスと名前を取得するVBAのプロパティです。
3. `CreateObject(“Scripting.FileSystemObject”)`を使用して、ファイルやフォルダの操作をサポートするFileSystemObjectオブジェクトを作成します。
4. `FSO.CopyFile`メソッドを使用して、ファイルをコピーおよび圧縮します。

応用例

応用1: 日付を付加してバックアップ

日付をファイル名に付加することで、バックアップの日付を識別できます。


DestFile = "C:\backup\" & ThisWorkbook.Name & Format(Date, "yyyymmdd") & ".zip"

応用2: 特定のシートだけをバックアップ

特定のシートだけを新しいワークブックとして保存し、そのワークブックをバックアップする方法です。


Sub BackupSpecificSheet()
    Dim Ws As Worksheet
    Dim NewWb As Workbook
    Dim FSO As Object
    Dim SourceFile As String
    Dim DestFile As String

    Set Ws = ThisWorkbook.Sheets("Sheet1")
    Ws.Copy
    Set NewWb = ActiveWorkbook
    SourceFile = NewWb.FullName
    DestFile = "C:\backup\" & NewWb.Name & ".zip"

    ' FileSystemObjectの作成とバックアップ
    Set FSO = CreateObject("Scripting.FileSystemObject")
    FSO.CopyFile SourceFile, DestFile, True

    NewWb.Close SaveChanges:=False
    Set FSO = Nothing
End Sub

応用3: バックアップ後にメッセージボックスで通知

バックアップが完了した後に、メッセージボックスでユーザーに通知する方法です。


FSO.CopyFile SourceFile, DestFile, True
MsgBox "バックアップが完了しました。", vbInformation

まとめ

Excel VBAを使用して、バックアップの際の圧縮オプションを活用する方法は、ディスク容量の節約や管理の効率化に役立ちます。この記事で紹介した基本的な方法や応用例を参考に、日々の作業の効率化を図ってください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次