![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- iPhone(アイフォーン) iPhone ファイル iPhoneのファイルで写真をzipに圧縮した後もう一度展開すると画質は変わ 3 2022/10/21 21:53
- ノートパソコン パソコンでmp4の動画ファイルを10個くらい(合計20GB)をフォルダに入れて、容量を軽くしてしまお 2 2023/02/06 02:08
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Windows 8 メール送信、zipファイル PDFについて 回答お願いいたします。 Windows8 メールはサクラ 1 2022/05/12 17:49
- PDF エクセルのVBAでファイルをpdfで保存するとソフトによっては開けなくなる 3 2022/06/08 10:20
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Android(アンドロイド) androidでzip圧縮してから転送できるファイラー 3 2022/12/11 10:22
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access レポート印刷するときに...
-
実行時エラー3131 FROM 句の構...
-
accessクエリで直前の水曜日〜...
-
【至急・画像あり】建物or住所...
-
Accessのテキストボックスの入...
-
access2021 強制終了してしまう
-
ms access 2013で、チェックボ...
-
Accessのクエリの結果を、既存...
-
Access VBA [リモートサーバー...
-
Accessのデータ型の日付/時刻型...
-
Microsoft365にAccessってあり...
-
DoCmd.SearchForRecord が動か...
-
access レポート 請求書について
-
アクセスのレコードをフォーム...
-
Access runtimeでのオプション...
-
Accessが強制終了する理由はな...
-
ACCESSのレポートにフォームの...
-
access2021 更新前に処理をしたい
-
access2021 VBA メソッドまたは...
-
【世界はデータで出来ている】...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでdatファイルを作成??
-
複数のテキストファイルをexcel...
-
batファイル処理でのテキストフ...
-
バッチファイルが作成できない
-
テキストファイルの文字色に色...
-
複数のファイルを同時検索し、...
-
一気にずばっと複数のメールを...
-
ファイル名の特定文字だけ削除...
-
マクロでメモ帳に貼り付け
-
VBSでテキストファイルのタブ区...
-
ヘルプファイルの翻訳
-
CADでグラフ作成
-
パイソン(コラボラレイトリー...
-
文字の頭文字順に自動移動
-
Excel2003でマクロを使用してtx...
-
インデザインのテキスト流し込み
-
CDの曲名をテキストファイルで...
-
ExcelVBA テキストファイルから...
-
エクセルにpdfのテキストを表示...
-
エクセルVBA テキストファイ...
おすすめ情報