Excelで一定のファイルを各フォルダへコピーするマクロ

経緯と概要

 ある業務のスタート時に、一定のファイルを各フォルダ毎に用意し、そのファイル名を変更するといった事があります。以前は、フォルダに先にファイルをコピーし、各フォルダにてファイル名を変更するといった事を行っており、大変手間がかかっていました。
 それから、一定のファイルを一括でファイル名の変更をしていましたが、それでも各フォルダにファイルをコピーする手間がありました。

 今回は、Excelにて、フォルダにある一定のファイルを各フォルダに振り分けてコピーするマクロです。これまでのようにフォルダを開いたり閉じたりすることや、フォルダ毎にファイルを選ぶ必要がなくなり、業務効率が向上しました。

マクロの設定の説明

Functionの関数の引数は3つ
  1. フォルダの判定のキーワード(このマクロでは コピー先に振り分けれるように 契約書用 申請用 図面用 と入力しています。判定はB列の4行目から行っています。)
  2. 元のフォルダパスのセルのアドレスです。(このマクロでは D1に元のファイルのアドレスをいれています。) 
  3. コピー先のフォルダパスのセルのアドレスです。(このマクロでは D3 J3 P3に各コピー先のアドレスを入力しています。)
マクロのデータについて
  • A列4行目からB列27列目まで入っています。 
  • A列はD1にあるフォルダパスのファイル名を入力しています。
  • B列はフォルダの振り分け先判定用です。 
  • 上書きの警告を表示するようにしていますが、「いいえ」を選択すると、それ以後の処理も止まります。
下記 画像のような状態にしています。

感想

今回のマクロもボタンで登録して行っているため、大変便利になりました。
(別のファイル名の一括変更のマクロと組み合わせているので、更に楽になっています)
コードも数行ですので、編集しやすいと思います。

以下コード

Excelでシート名の変更とシートを追加するマクロ

概要

Excelのシートを、〇月〇日~〇日というシート名に変更するマクロです。  
1つ目のシートから最後のシートまで、F1の値をシート名にしています。
もし同じ名前のシートがある場合は処理しません。
前のシートのA4のセルが日付の基準のセルとしています。

F1のセルの数式 は
『=TEXT(A4,"m月d日~")&TEXT(A4+6,"d日")』
としてセルの表示形式を整えています。 
これでA4のセルの値を基準として 〇月〇日~〇日 となります。
(このF1のセルがシート名となります。)

シート名の変更のコード

 

シート追加のコード  

また、シートを追加するマクロも作っています。
前のシートのA4のセルが日付の基準のセルとしています。
F1の値をシート名に変更しています。

 

複数のフォルダをワンクリックで開くpythonをexe化してみました。

複数のフォルダやファイルをワンクリックで同時に起動してその際に右や左の画面に移動したりしていましたが、それすらも省略したいなーと思い、ちょっと調査。 bat、ps1、vbsでは挫折したので、pythonでコードを組んで、exe化しました。 だいぶ強引ですけどね。 pythonの...