VBA:ファイルコピーの違い。FileSystemObjectの「CopyFile」と「FileCopy」ステートメント
VBAでファイルなどのコピーをする際によく使う方法には以下のようなものがあります。
- 「File System Object(FSO)」の「CopyFileメソッド」
- 「FileCopy」ステートメント
◆やれることやれないこと一覧
1.FSOのCopyFile | 2.FileCopy | |
(1)「source」に「*(ワイルドカード)」と「?」が使える | ○ | × |
(2)上書き設定(overwrite) | ○ | × |
(3)開いているファイルをコピー | ○ | × |
(4)ファイル名省略 | ○ | × |
(5)環境依存文字 | UTF16 | UTF8 |
(1)「source」に「*(ワイルドカード)」と「?」の例と(4)ファイル名の省略
ファイル名に日付やバージョンが付けられていて、タイミングによってそれらの部分が変わる場合があります。そのような時にワイルドカードなどを利用します。
1 2 3 4 |
FSO.CopyFile "C:\Users\VBA\FSO\元フォルダー\*", "C:\Users\VBA\FSO\移動先フォルダー" '「*」(アスタリスク)でフォルダーにあるファイル全てになる。' '「*.txt」でフォルダーにあるテキスト形式ファイル全てになる。' '後ろのパスは保存先。ファイル名を省略すると元のファイルと同じになる。' |
(2)上書き設定(overwrite)
以前実行したコピーファイルがコピー先のフォルダに残っていたとしても、コピー元の最新のファイルに上書きすることができます。
1 2 |
FSO.CopyFile "C:\Users\VBA\FSO\元フォルダー\test.txt", "C:\Users\VBA\FSO\移動先フォルダー\new_test.txt, True" '最後に「True」を付けると上書き、「False」なら上書きしない。「True」が規定値。省略可' |
◆関連記事