[1146]
Windows7で解凍できて、XPではエラー |
---|
□投稿者/ maite49 -(2013/04/04(Thu) 19:52:40)
□U R L/ |
【ソフト名】 7-zip32.dll 【バージョン】 9.20.0.2 【使用OS】 WindowsXP 【PC機種】 【質問内容】 お世話になります。 7-zip32.dllを使用させて頂き、Excel VBAでzipファイル(Pass付)をカレントフォルダに解凍するマクロを作成しました。 作成したWindows7のExcel2010では問題なく解凍できましたが、別PCのWindowsXPとExcel2003では戻り値がエラーとなり、 解凍ができませんでした。
以下にソースコードを記述します。
Declare Function SevenZip Lib "7-zip32.DLL" _ (ByVal hWnd As Long, _ ByVal szCmdLine As String, _ ByVal szOutput As String, _ ByVal dwSize As Long) As Long Sub 解凍()
Dim Lpstr As String * 5000 Dim cmdLine As String Dim res As Long cmdLine = "x -aoa " & ファイル名 & " -p" & パスワード & " " & ThisWorkbook.Path & "\"
res = SevenZip(0, cmdLine, Lpstr, 5000)
End Sub
Windows7とExcel2010では、上記変数resの値は「0」でしたが、WindowsXPとExcel2003では「33026」となり、 エラーログLpstrの内容が「Base directory isn't found.」となっていました。
OSまたはExcelと7-zip32.dllの相性の問題とも考え、unZip32.dllに変更して試してみましたが、 やはりWindows7では解凍でき、XPでは解凍できませんでした。 尚、unZip32.dll使用時のresの値は「32809」で、Lpstrの内容は「can't find zipfile[C:\Documents.zip]」でした。 ログの内容は違いますが、解凍できない原因は同じなのではないかと何となく思っています。 XPで解凍するには何かを変更する必要があるのでしょうか。 ご回答のほど、よろしくお願いいたします。 |
|