unlha32.dll の API を利用すると、VB や VBA から LHA 圧縮・解凍を行うことができます。
そのためのサンプルコードを以下に示します。
Public Declare Function Unlha Lib "unlha32" ( _ ByVal hWnd As Long, _ ByVal szCmdLine As String, _ ByVal szOutput As String, _ ByVal dwSize As Long _ ) As Long Sub main() If Lha("a test.lzh test.txt") = False Then MsgBox ("lha error!") End If End Sub Function Lha(szCmdLine As String) As Boolean Dim hWnd As Long 'ウィンドウハンドル Dim szOutput As String '出力バッファ< Const dwSize As Long = 256 '出力バッファサイズ szOutput = Space(dwSize) '出力バッファを確保する。 If Unlha(hWnd, szCmdLine, szOutput, dwSize) = 0 Then 'unlha32 を呼び出す。 Lha = True Else Lha = False End If End Function
このサンプルコードでは、LHA コマンドを実行する関数 LHA を定義し、その中で unlha32.dll を呼び出しています。
LHA 関数に LHA.EXE のコマンドラインと同様の文字列を渡すことにより、圧縮・解凍をはじめ、LHA書庫ファイルに対する各種操作を行うことができます。
(このサンプルコードでは test.txt というファイルを圧縮し、test.lzh というファイルを作成しています)
操作の成功/失敗はブール値で返します。
LHA コマンドラインの詳細については LHA.EXE または unlha32.dll のヘルプなどを参照してください。