
No.3ベストアンサー
- 回答日時:
こんにちは。
Google 検索もしてみましたが、Excel VBAでは、あまり良いものがないようですね。あくまでも、VBAの処理ですから、それはそれなりにしたほうがよいですね。
Zip32j が必要です。
http://www.vector.co.jp/soft/win95/util/se062163 …
当然、Zip32.dll は入っているものと見なします。なお、以下は簡易な方法です。
ただ、ファイルネームが、ショートネームしか受けないようなので、そのまま、GetOpenFilename ダイアログでは、ロングネームで、Zip32側が、エラーを起こしてしまいます。
もし、本格的にお使いになるのなら、実際には、Shell.Application のショートネームプロパティなどをお使いになるとよいでしょう。
うまくいかなかったら、Debug.Print のコメント・ブロックを外して、イミディエイトウィンドウで、その内容を確認してください。
それから、詳しいコマンドは、Zip32jの中の、CMD_ZIP.TXT を確認してください。一番、コマンドの説明が分かりやすいです。
'標準モジュール
'Option Explicit
Private Declare Function Zip Lib "Zip32j" (ByVal hWnd As Integer, ByVal szCmdLine As String, ByVal szOutPut As String, ByVal dwsize As Integer) As Integer
Private Declare Function FindWindow Lib "USER32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Sub testZip()
'Zip32 による圧縮
Dim Filename As String
Dim strArchiveName As String
Dim strCommand As String
Dim RC As Long
Dim hWnd As Long
Dim strOutPut As String * 512
Dim lngSize As Long
'ハンドル取得
hWnd = FindWindow("XLMANI", Application.Caption)
'ファイル名取得
Filename = Application.GetOpenFilename("テキストファイル*.txt(*.txt),*.txt")
If Filename = "False" Then Exit Sub
Filename = Mid$(Filename, InStrRev(Filename, "\") + 1)
strArchiveName = Mid$(Filename, InStrRev(Filename, "\") + 1, InStrRev(Filename, ".") - InStrRev(Filename, "\") - 1) & ".zip"
strCommand = "-u " & strArchiveName & " " & Filename
lngSize = Len(strOutPut)
RC = Zip(hWnd, strCommand, strOutPut, lngSize)
'Debug.Print strOutPut
End Sub
この回答へのお礼
お礼日時:2006/09/14 14:43
これぞまさに求めていたものでした。取り急ぎNo.2のリンク先のVBSで対処しましたが、非常に参考になりました。どうもありがとうございました。
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルが作成できない
-
ファイル名の特定文字だけ削除...
-
CDの曲名をテキストファイルで...
-
複数のテキストファイルをexcel...
-
初期化後の任意のアプリの復元
-
Microsoft Access エラー 3051
-
subversionからファイル取得時...
-
Windowsのメモ帳でジョークウイ...
-
【VC++6.0 MFC】画像表示について
-
バッチによるショートカットの...
-
CSVファイルの出力に関して
-
仮想パスの意味
-
フォルダ階層が深いファイルの...
-
レーザープリンターのA4・5...
-
Excel-VBA 撮影日時の取得
-
FFFTPでサーバに新規フォルダが...
-
グーグルドライブからコピーし...
-
VBAでファイルを指定して印刷さ...
-
ダウンロード不可PDFファイルは...
-
BASP21を使わないファイルアッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでdatファイルを作成??
-
バッチファイルが作成できない
-
複数のテキストファイルをexcel...
-
複数のファイルを同時検索し、...
-
テキストファイルの文字色に色...
-
一気にずばっと複数のメールを...
-
batファイル処理でのテキストフ...
-
VBAで、テキストファイルの削除...
-
ファイル名の特定文字だけ削除...
-
複数のテキストファイルをexcel...
-
文字の頭文字順に自動移動
-
CDの曲名をテキストファイルで...
-
【エクセルVBA】エクセルからテ...
-
CADでグラフ作成
-
Dreamweaverに拡張子を設定する...
-
メモ帳(テキストエディタ)に...
-
Atokのユーザー辞書に、複数の...
-
ヘルプファイルの翻訳
-
テキストファイルを、ファイル...
-
テキストファイルを開かずに中...
おすすめ情報