• ベストアンサー

EXCELのBOOKを圧縮してFDに保存

おはようございます。 EXCELでつくったデータがあります。 保存のマクロを使用しており、日付が保存名になっています。 このファイルをLHACAで圧縮してFDに自動で保存させたいです。方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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

参考URL:
http://www.vector.co.jp/soft/win95/util/se020193.html

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

Lhacaに拘らなければ、圧縮バックアップソフトは沢山ありますよ。 http://search.vector.co.jp/search?query=%88%B3%8Fk+%83o%83b%83N%83A%83b%83v

関連するQ&A