Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Excel 2016)
zipフォルダ内のファイル移動
投稿日時: 21/11/21 17:11:27
投稿者: akahana0_0

エクセルVBAで下記ようなzipフォルダ内のファイル
C:\aaa.zip\aaa\test.xls

C:\aaa.zip\test.xls
のように移動させるのに
 
Dim fso As Object
Dim MFir As String
Dim SFir As String
Set fso = CreateObject("Scripting.FileSystemObject")
MFir = "C:\aaa.zip\aaa\test.xls"
SFir = "C:\aaa.zip\"
fso.MoveFile MFir, SFir
Set fso = Nothing
 
としてるのですがエラーでファイルが移動できません
どうすればいいのかご教授ください

回答
投稿日時: 21/11/21 20:24:58
投稿者: simple

zipフォルダというのは、見せ方の工夫であって、
通常のフォルダと配下のファイルというものとは違います。
あくまでファイルはひとつなわけです。
 
ですから、
通常のフォルダとファイルの関係のようなことはできないんじゃないですか?
どうしてもということなら、
・いったん解凍して、
・フォルダ構造を修正して、
・再度圧縮する、
とすれば、お望みのことが実現できると思います。

回答
投稿日時: 21/11/22 14:59:10
投稿者: simple

それではどうするんだということになるでしょうが、
そういうアドホックなことは、手作業で実行するのがよいと思っています。
Excelはもともと、一般的なファイルの圧縮解凍機能を持っていませんので、
コードを作成するとなれば、手作業でやる何倍もの時間と手間がかかるでしょう。
 
どうしてもということなら、
「VBA zip 圧縮 解凍」などとしてネット検索すれば、
他の機能を援用したコードがあると思いますので、
そちらで検討してみてはいかがですか?

投稿日時: 21/11/22 21:56:50
投稿者: akahana0_0

手作業ですよね
今までがんばってたんですよね
ただ、約180もzipがあるとさすがに疲れるので
聞いてみました
何か考えます。
どうもありがとうございました

回答
投稿日時: 21/11/23 06:41:33
投稿者: Nubo

とりあえず、winrarなどでZIPを指定ディレクトリーにまとめて一括解凍する。
後は、以下のBATを利用して解凍されたファイルを底上げ後にZIPで再圧縮する
かなり時間が短縮されるはずです。
 
https://q7z.hatenablog.com/entry/2016/02/10/013850

回答
投稿日時: 21/11/23 21:37:21
投稿者: WinArrow
投稿者のウェブサイトに移動

解凍 と 圧縮 の別々になりますが、
 
以下のページが参考になるかも?
 
https://vbabeginner.net/zip-comp-decomp/
 
ちなみに
私は、VBAで作成したシステムに圧縮を自動化しています。
PowerShellではないが・・・・

トピックに返信