ファイルをコピーする。
FileSystemObjectのCopyFileメソッドを利用してファイルをコピーすることができます。
CopyFileには下記の引数が設定できます。
| 引数名 | 説明 | 省略 | |
| 第1引数 | source | コピー元のファイルパスの指定 | 不可 |
| 第2引数 | destination | コピー先のファイルパスまたはフォルダの指定 | 不可 |
| 第3引数 | overwrite | コピー先に同名ファイルがある場合の判定 True:上書き(規定値)、False:上書きしない | 可 |
コピーする時にファイルの名前を変更してコピーさせることも可能です、その場合は第2引数の末尾に”\”を付けない形で指定します。
名前を変更しないでコピーさせる場合は第2引数の末尾に”\”が必要になります。
またワイルドカードを使用して複数のファイルをまとめてコピーさせることもできます。
コピー先に同名ファイルに既に存在する場合、上書きするかどうかを第3引数に True または False を指定することでできます。True が「上書きをする」になります。
●同じファイル名のままコピー
'******************************************************************
' ファイルのコピー(同じファイル名のままコピー)
'******************************************************************
Sub Main_CopyFile()
'コピー元のファイルパスの指定
Dim sFileSrc As String
sFileSrc = "C:\VBA\FSO\memo.txt"
'コピー先のフォルダを指定
Dim sFileDst As String
sFileDst = "C:\VBA\FSO\移動先\"
'FileSystemObjectの作成
Dim oFso As Object
Set oFso = CreateObject("Scripting.FileSystemObject")
'ファイルのコピー
Call oFso.CopyFile(sFileSrc, sFileDst)
End Sub●ファイル名を変更してコピー
Sub Main_CopyFile_ChangeName()
'コピー元のファイルパスの指定
Dim sFileSrc As String
sFileSrc = "C:\VBA\FSO\memo.txt"
'コピー先のファイルパスを指定(変更後のファイル名を指定)
Dim sFileDst As String
sFileDst = "C:\VBA\FSO\移動先\memo_rename.txt"
'FileSystemObjectの作成
Dim oFso As Object
Set oFso = CreateObject("Scripting.FileSystemObject")
'ファイルのコピー
Call oFso.CopyFile(sFileSrc, sFileDst)
End Sub●複数のファイルをまとめてコピー
Sub Main_CopyFile_ALL()
'コピー元のファイルパスの指定
Dim sFileSrc As String
sFileSrc = "C:\VBA\FSO\memo*.txt"
'コピー先のファイルパスを指定
Dim sFileDst As String
sFileDst = "C:\VBA\FSO\移動先\"
'FileSystemObjectの作成
Dim oFso As Object
Set oFso = CreateObject("Scripting.FileSystemObject")
'ファイルのコピー
Call oFso.CopyFile(sFileSrc, sFileDst)
End Sub●同名ファイルがある場合は上書き
Sub Main_CopyFile_Update()
'コピー元のファイルパスの指定
Dim sFileSrc As String
sFileSrc = "C:\VBA\FSO\memo.txt"
'コピー先のフォルダを指定
Dim sFileDst As String
sFileDst = "C:\VBA\FSO\移動先\"
'FileSystemObjectの作成
Dim oFso As Object
Set oFso = CreateObject("Scripting.FileSystemObject")
'ファイルのコピー(同名ファイルがある場合は上書く)
Call oFso.CopyFile(sFileSrc, sFileDst, True)
End Sub

