« 外部の画像ファイルを使用する | メイン | VBAでインターネットに接続する »

ファイルをzip形式で圧縮する

吉岡 恒夫さんのZip32j.dllを使用します。
http://openlab.ring.gr.jp/tsuneo/zip32j/からどうぞ。
このdllをVBAから呼び出します。

1.ライブラリの関数zipを定義します。
下記の定義をDeclarations部分に記述してください。


Private Declare Function zip Lib "Zip32j.dll" Alias "Zip" ( _
ByVal lhWnd As Long, _
ByVal szCmdLine As String, _
ByVal szOutPut As String, _
ByVal wSize As Long _
) As Long

2.関数を実行するサンプルです。
xxxxxx.xxxというファイルをyyyyyy.zipとして圧縮します。


Sub Zipper()

Dim Filename As String
Dim ArchiveName As String
Dim Command As String
Dim RC As Long
Dim hWnd As Long
Dim OutPut As String * 512
Dim Size As Long

Filename = "c:¥xxxxxx.xxx"
ArchiveName = "c:¥yyyyyy.zip"

Command = ArchiveName & " " & Filename

Size = Len(OutPut)

RC = zip(hWnd, Command, OutPut, Size)

End Sub

hWndはAPIによくでてくるウィンドウのハンドルIDですが、ここでは省略しても、うまく動くようです。
OutPutの512バイトは適当です。こちらも0でも動くようです。
Commandにはオプションの指定もできます。APIを参考にしてみてください。
なお、zip32j.dllのほかにzip32.dllも必要です。(多分導入されていると思いますが。。。)

ひとつ前の投稿は「外部の画像ファイルを使用する」です。
次の投稿は「VBAでインターネットに接続する」です。

トラックバック

このエントリーのトラックバックURL:
http://www.xillion.net/mova/mt-tb.cgi/80

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2004年10月04日 00:00に投稿されたエントリーのページです。

メインページアーカイブページも見てください。

Powered by
Movable Type 3.34