#367 | UNLHA32.DLLを利用してファイルを圧縮する方法 | VBA、API | |
UNLHA32.DLLをVBAから呼び出して、ファイルをLZH形式に圧縮する方法です。 まず、標準モジュール等に以下のコードを記述します。ここには、UNLHA32.DLLをVBAから利用するための宣言と、汎用的に呼び出して使うためのプロシージャが書かれています。 Private Declare Function UNLHA Lib "UNLHA32.DLL" Alias "Unlha" _ (ByVal hwnd As Long, ByVal szCmdLine As String, _ ByVal Lpstr As String, ByVal wsize As Long) As Long Public Function CompressFile(strDataFile As String, strLZHFile As String) As Boolean '概要 指定ファイルをLZH形式に圧縮する '引数 strDataFile : 圧縮元のファイルパス ' strLZHFile : 圧縮先のLZHファイルのパス '返値 成功時 True、失敗時 False Dim strCmdLine As String Dim strBuff As String * 5000 Dim lngRet As Long 'UNLHAに渡すコマンドラインを組み立て strCmdLine = "a " & strLZHFile & " " & strDataFile 'UNLHAにコマンドを発行 lngRet = UNLHA(0, strCmdLine, strBuff, 5000) '返り値の設定 If lngRet = 0 Then CompressFile = True Else CompressFile = False End If End Function CompressFileプロシージャは、次のようにして実行することができます。この例では、「c:\db1.mdb」ファイルを「c:\BackUp.lzh」に圧縮しています。 CompressFile "c:\db1.mdb", "c:\BackUp.lzh" ■コマンドラインのスイッチに関する補足 UNLHA32.DLLにはさまざまなコマンドラインのスイッチが用意されています。
■UNLHA32.DLLについての補足 上記のサンプルコードを実行するには、当然のことながらUNLHA32.DLLが必要となります。これはAccessに付属のものではありませんので、別途インターネット等よりダウンロードして入手し、さらにセットアップしておくことが前提となります。 UNLHA32.DLLはMicco氏によるフリーウェアで、以下のサイトなどから入手することができます。 http://www2.nsknet.or.jp/~micco/micindex.html |
|||
|
Copyright © T'sWare All rights reserved |