メイン画像

VBScript - 外部ライブラリ(7-Zip)を使って ZIP 圧縮する

VBScript - 外部ライブラリ(7-Zip)を使って ZIP 圧縮する


VBScript から zip 圧縮する方法を説明します。

Windows の標準機能(圧縮フォルダー)をスクリプトから利用するのはマイクロソフト非推奨なので、代わりに外部ライブラリ(7-Zip)を利用します。

事前準備

7-Zip は Windows で利用できる圧縮・解凍ソフトです。

7-Zip にはインストール不要で使えるコンソール版があります。

コンソール版をダウンロードして適当なフォルダに解凍しておきます。

7-Zipのウェブサイト → 圧縮・解凍ソフト 7-Zip

今回の例では C:\tools フォルダに実行ファイルを置きました。

zip 圧縮の手順

7-Zip のコマンドを Shell オブジェクトから実行するだけで、ファイルやフォルダを圧縮できます。

コマンドは以下の書式となっています。

7za.exe <命令> <圧縮ファイル名> <圧縮したいファイル名>

コマンドの詳細は以下を参照してください。

次のコードは、7-Zip を使って「C:\path\to\compress.xlsx」を圧縮し「C:\zip_test\test.zip」とするサンプルです。

Option Explicit

'コマンドを生成
Dim command
command = """C:\tools\7za.exe"" a -tzip ""C:\zip_test\test.zip"" ""C:\path\to\compress.xlsx"""

'コマンドを実行
Dim exec
Set exec = CreateObject("WScript.Shell").Exec(command)

'コマンド終了まで待機
Do While exec.Status = 0
    WScript.Sleep 100
Loop

まとめ

スクリプトからの圧縮フォルダーの利用は非推奨なので、ファイルやフォルダを圧縮するときは 7-Zip 等の外部ライブラリを利用しましょう。


アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事