フォルダ毎コピーできるマクロを作りたいと思っています。
エクセルのC4セルに「コピー元のフォルダのパス」を
C10セルに「コピー先のフォルダのパス」を入れて、
マクロを実行するだけの仕様にしたいです。
その際、例えば
C4には[C:\Users\tanaka\Documents\data]
C10には[\\192.168.1.10\backup]
とした場合、
コピー元の「data」フォルダまるごと
コピー先の「backup」フォルダの中にコピーしたいのですが、
世代バックアップが取れるように
「data_20190718_1110」のように日時を付与したフォルダ名で保存したいのです。
上記のとおりC4、C10を取得するだけでできるのか、
C4にPath[C:\Users\tanaka\Documents\]、C5にフォルダ名[data]と分けて入れるべきなのか、
Pathの末尾に\は必要なのか、
フォルダ内のサブフォルダも含め「全て」対象としたいのですが、
どの辺までコントロール可能なのか、
とか不明点だらけです。
良い方法を教えていただけないでしょうか?
No.1ベストアンサー
- 回答日時:
FileSystemObjectを使用すれば可能なようです。
Folderオブジェクト - Copyメソッド
http://officetanaka.net/excel/vba/filesystemobje …
FileSystemObjectオブジェクト - CopyFolderメソッド
http://officetanaka.net/excel/vba/filesystemobje …
等が参考になると思います。
>上記のとおりC4、C10を取得するだけでできるのか、
>C4にPath[C:\Users\tanaka\Documents\]、C5にフォルダ名[data]と分けて入れるべきなのか・・・
いかようにもなります。
後は変更のしやすさです。極端な話をすればPathを変更する必要が無ければ
FSO.GetFolder("C:\Users\tanaka\Documents\data").Copy "\\192.168.1.10\backupフォルダー名"
のようにするだけで、あえてセルへ入力する必要すらないのです。
※backupフォルダー名に関しては毎回、NowとFormat関数を用いて文字列を作成するようにしないと、要望の「世代バックアップ」には対応できませんが!
ありがとうございます。
教えていただいたリンク先の情報を参考にして、
指定したフォルダ丸ごと、指定先のフォルダ内にコピーさせることができました。
[TEST] → \Backup\TEST としてコピーできたという事です。
これを
\Backup\TEST_20190710_1454 の様にコピーしたいのですがどうしたら良いでしょうか?
ちなみに現状は、日時は自動取得しており、
DstFolderName という変数に「TEST_20190710_1454」という名称で格納は出来てます。
DstPath という変数に「\\192.168.1.10\backup」も取得できてます。
\\192.168.1.10\backup\TEST_20190710_1454 としてコピーしたく、
お知恵をお貸しください。
No.3
- 回答日時:
>DstFolderName という変数に「TEST_20190710_1454」という名称で格納は出来てます。
>DstPath という変数に「\\192.168.1.10\backup」も取得できてます。
まで出来ているのでしたら、それらをつなぎ合わせて
「\\192.168.1.10\backup\TEST_20190710_1454」とすればよいはずですので、
DstPath+”¥”+DstFolderName
をコピー先に指定すれば良いので、
FSO.GetFolder("C:\Users\tanaka\Documents\data").Copy DstPath+”¥”+DstFolderName
でコピーできませんでしょうか。
一番の懸念事項は、このCopyメソッドがネットワークPCに対応しているかの方にあります。
先に
FSO.GetFolder("C:\Users\tanaka\Documents\test").Copy ”\\192.168.1.10\backup\TEST_20190710_1454””
等で確認した方が良いように思います。
最後の”¥”の有無等で保存先が変化するようですので、意図したフォルダー名と異なる等の細かい不都合は生じるかもしれません。
ありがとうございます!
また試行錯誤してみます。
結果的には、
目的の名称のフォルダをVBAで自動作成させてから、その中にフォルダ中を放り込む、、、という手法でとりあえずうまく行ってしまいました。
どっちが良いんでしょうね?
No.2
- 回答日時:
>これを
>\Backup\TEST_20190710_1454 の様にコピーしたいのですがどうしたら良いでしょうか?
FSO.CopyFolder コピー元, コピー先 ですが
コピー先を \Backup\TEST でなく
\Backup\TEST_20190710_1454 としてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 20:11
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 04:23
- Windows Vista・XP windows10 フォルダを上書きするときに、元のフォルダを全て削除してコピーする方法 3 2022/05/22 00:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムについて。
-
DataTableに入っているデータを...
-
Ctrl + Cなど複数の入力キー...
-
Eclipseのコード入力時の、行コ...
-
Access VBAから使用したExcelプ...
-
マウントしたディスクにcpで、...
-
Activesheet.Pasteで困っています
-
エクセルVBA 実行時エラー'...
-
arduino unoからデータを読み出...
-
C++言語で、構造体のコピーは可...
-
Excelでコピーしたセル(テキス...
-
Listviewに表示された文字のコ...
-
Subversionで作業一段落の作業...
-
バッチで当日日付で作成される...
-
文字列の切り出し
-
一行おきに貼り付ける 可能でし...
-
EPROM Writer の使い方がわから...
-
VBA 最終行・最終列コピー範囲...
-
VBAのコピーマクロがデバッグに...
-
Windows上のマウス操作をプログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
C++言語で、構造体のコピーは可...
-
DataTableに入っているデータを...
-
マウントしたディスクにcpで、...
-
エクセルVBA 実行時エラー'...
-
gitってなんですか?
-
Listviewに表示された文字のコ...
-
arduino unoからデータを読み出...
-
一行おきに貼り付ける 可能でし...
-
Ctrl + Cなど複数の入力キー...
-
Activesheet.Pasteで困っています
-
Eclipseのコード入力時の、行コ...
-
ブラウザからコピペすると文字...
-
シートに張り付けたボタンがシ...
-
ROBOCOPYをスペース付きのフォ...
-
文字列の切り出し
-
Eclipseでコピーするとき行数な...
-
【UWSC】WEBページ内コピーした...
-
jakarta poiを使用し、EXCELの...
-
バッチで当日日付で作成される...
おすすめ情報