- ベストアンサー
EXCELのBOOKを圧縮してFDに保存
おはようございます。 EXCELでつくったデータがあります。 保存のマクロを使用しており、日付が保存名になっています。 このファイルをLHACAで圧縮してFDに自動で保存させたいです。方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBAで圧縮すればよいのではありませんか? すでに、UnLha32.Dll をお持ちだとしたら、以下のようなコードでできるかと思います。あまり、細かな説明をしませんので、もしお分かりにならなければ、一般的な圧縮ツールをお使いください。 UnLha32.Dll の所在地 http://www.vector.co.jp/soft/win95/util/se020193.html Option Explicit Private Declare Function Unlha Lib "UNLHA32.DLL" (ByVal hWnd As Long, _ ByVal szCmdLine As String, _ ByVal Lpstr As String, _ ByVal wsize As Long) As Integer Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Sub Compress(FileName As String, Optional myDrive As String) Dim myCmd As String Dim rtn As String * 1024 Dim hWnd As Long, lzhName As String Dim lhaArg As String Dim Qt As String Qt = """" ' 'ファイルの存在のチェック If Dir(FileName) = "" Then _ MsgBox "ファイルが見つかりません。", 16: Exit Sub '第二引数のチェック If InStr(myDrive, ":\") > 0 Then FileName = Mid$(FileName, InStrRev(FileName, "\") + 1) lzhName = myDrive & _ Left(FileName, InStrRev(FileName, ".") - 1) Else lzhName = Left(FileName, InStrRev(FileName, ".") - 1) End If lhaArg = FileName lhaArg = Qt & lhaArg & Qt lzhName = Qt & lzhName & Qt 'UnLha に渡す実際のコマンド myCmd = "a " & lzhName & " " & lhaArg 'Excel 2002 なら、以下でも可能 'hWnd =Application.hWnd 'Excel 97, 2000 hWnd = FindWindow("XLMAIN", Application.Caption) Unlha hWnd, myCmd, rtn, 1024 MsgBox rtn End Sub '実行ファイル Sub Compress_test() 'Compress "ファイル名.拡張子", ["保存先のドライブ"] Compress "C:\Test.xls", "A:\" End Sub
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
Lhacaに拘らなければ、圧縮バックアップソフトは沢山ありますよ。 http://search.vector.co.jp/search?query=%88%B3%8Fk+%83o%83b%83N%83A%83b%83v