本記事には広告が含まれています

F0000064_フォルダをミラーリング(ミラーフォルダを作成)する

フォルダをミラーリング(ミラーフォルダを作成)する

この関数について

ExcelVBA(マクロ)ではWindowsの新しいコマンドプロンプト(?)であるPowershellを実行することができます。会社のセキュリティ設定によっては実行できないものはあるかもしれません。この関数では「robocopy」コマンドを使用してフォルダを指定した場所にミラーリングします。このコマンドの優秀な点は、同じ場所に同じフォルダをミラーリングする場合、フォルダの差分のみをミラーリングできることです。そのため巨大なフォルダをまるごとミラーリングしても2回目以降の実行は更新されたファイルの容量分だけになります。私は簡易なバックアップ手段として採用していました。

関数コピペ ~コードをクリックするだけでコピー完了!~



使い方 ①引数

引数名参照省略内容
source_folder_pathStringByVal不可コピー元のフォルダの絶対パス
sync_folder_pathStringByVal不可コピー先のフォルダの絶対パス
only_copy_file_nameStringByVal特定のファイルのみコピーしたい場合に指定する。ワイルドカードを使用可。指定しない場合は「*.*」を渡したものとみなす
run_for_visibleBooleanByValPowershellの実行画面を見せるか否か True・・見せる False・・見せない 指定しない場合は「True」
wait_for_completionBooleanByValPowershellの実行終了を待つか否か True・・待つ False・・待たない 指定しない場合は「True」

使い方 ②戻り値

この関数に戻り値はありません。

サンプルコード(クリックでコピー)






【結果】フォルダをミラーリングすることができました

サンプルコードを実行すると、インプットボックスが立ち上がり、フォルダパスの入力を受け付けます。コピー先のフォルダを作成後、メッセージを表示しユーザーが「はい」を選択するとフォルダのミラーリングを実行します。

ミラーリングを実行すると、コピー元にはないコピー先のフォルダ・ファイルはすべて削除されます。設定には気を付けましょう。

Comment