• ベストアンサー

コピー&リネーム

こんにちは。仕事で大量の反復作業があるため、マクロでの自動処理を考えています。VBの参考図書を見ながら挑戦してみたのですが、何分初めてなものでなかなかうまくいきません・・・もう時間が無いので、お恥ずかしいのですが教えて頂けないでしょうか。宜しくお願いいたします。 【処理内容】複数のフォルダがあり、各フォルダの同じ階層位置に同名ファイルが存在します。それらを全て一つのフォルダにまとめてコピーするのですが、同名ファイルなのでコピーの際にリネーム処理も同時に行いながらコピーします。リネームのルールは、「親フォルダ名_元ファイル名.元拡張子」です。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 FileSystemObjectの解説(目次) http://www.officetanaka.net/excel/vba/filesystemobject/index.htm を参考に初めて作った物ですので正解でないかも知れませんが、ご希望の動きは している事は検証できました。 コピー元・コピー先のフォルダを修正して下さい。 Sub try() Dim FSO Dim Folname Dim Fname Dim Cpname As String Dim Psname As String Dim v, vv Cpname = "R:\bbb" ' コピー元の親フォルダ Psname = "R:\bbb" ' コピー先のフォルダ Set FSO = CreateObject("Scripting.FileSystemObject") For Each Folname In FSO.GetFolder(Cpname).SubFolders For Each Fname In FSO.GetFolder(Folname).Files v = Split(Folname, "\") vv = Split(Fname, "\") FSO.GetFile(Fname).Copy Psname & "\" & v(UBound(v)) & "_" & vv(UBound(vv)) Next Next Set FSO = Nothing End Sub ご参考になれば。

pe-777
質問者

お礼

n-junさん。完璧です!!ありがとうございました!助かりました(^-^)

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

”マクロ”で”VB”と言う事は、どのアプリなのでしょう。 Excel or Access とか。 VB.NETとか。 >初めてなものでなかなかうまくいきません 提示してみては如何でしょう。 そこを修正する事で、間違っていた部分を理解出来るかと思います。

pe-777
質問者

補足

すみません、Excelのマクロで考えています。マクロってExcelに限った話ではないんですね・・・お恥ずかしいです。

すると、全ての回答が全文表示されます。

関連するQ&A

このQ&Aのポイント
  • Iphoneから直接印刷する際にサイズ変更ができないトラブルが発生しています。
  • 最新のiPhone 14 Pro MaxとWindows 10を使用しており、無線LANで接続しています。
  • 問題が解決しないため、ブラザー製品についての相談を求めています。
回答を見る

専門家に質問してみよう