ファイル選択コピーだけをVBAで自動化する
- yuji fukami
- 9月26日
- 読了時間: 2分
<概要>
今回はファイル選択コピーだけの処理をVBAで自動化するような汎用プロシージャの紹介です。
業務でよく流用するファイルをコピーして、どっかのフォルダに貼り付けて、そっからコピーしてきたファイル編集する形で作業を行うということがよくあると思います。
例えば報告書のテンプレートのエクセルファイルがあって、それが特定のフォルダの中にいつも保管されてて、それをコピーして毎回の報告書を作成するような感じですね。
この作業を手順で整理すると
①ファイルが保管されているフォルダを起動して、そのファイルを選択してコピー(Ctrl+C)する。
②作業するフォルダを開いて、そこでファイルをペースト(Ctrl+V)する。
今回紹介する汎用プロシージャは、この作業の流れにおいて①の部分を自動化するような処理です。
「一部だけ自動化して何か意味があるんだ」と思われるかもしれませんが、こちらの処理ができることで例えば、毎回使う報告書テンプレなどの特定のファイルのフルパスをもとにコピーする処理を記述しておいて、それをリボンなどに登録しておいて、いつでも実行できるようにしておけば、その対象の報告書テンプレが保管されているフォルダを毎回開くような手間が省けます。作業用のフォルダを開いて後ペーストするってだけの処理に済むので、少しだけ時短につながるっていうのがあります。
①②の処理のコピー&ペーストは簡単にVBAで実装できるんですが、①だけを自動化するっていうことは少し手間がかかるので、その点がええ参考になるような記事となると思います。
<ファイル選択コピーの実行例>
サンプルコードは下記のような感じです。
使用紹介する汎用プロシージャは2種類あって、CopyFileToClipboardおよびCopyFilesToClipboardです。
それぞれの説明すると次のようになります。
・CopyFileToClipboard : 単一ファイルをコピーする(ファイルのフルパスを文字列で渡す)
・CopyFilesToClipboard : 複数ファイルをコピーする(複数のファイルのフルパスが入った一次元配列を渡す)
こちらのサンプルコードの「FilePath」などの変数を書き換えてテストで実行してみてください。実際の2つの汎用プロシージャは下記のソースコードを利用してみてください。



コメント