VBAでファイルをコピー
VBA を使用してファイルをコピーする方法を例を挙げて紹介します。
VBAでファイルをコピー
ファイル コピーは、ある場所から任意の場所にファイルをコピーできる VBA 関数です。 この機能は非常に使いやすいです。
現在のファイル パスと宛先ファイル パスをマークする必要があります。
構文は次のとおりです。
# vba
FileSysObj.CopyFile src, dst, [ overwrite ]
src はサプライヤーです。 ソースからファイルをコピーできます。
ファイルをコピーしたい場所です。 完全に適切なフォルダー パスを宣言する必要があります。
dst はターゲット フォルダーです。 コピーしたファイルをこのフォルダーに貼り付けます。 上書きはオプションです。
例として、フォルダーから testFile というファイル名をコピーしてみましょう。 この関数のコードを以下に示します。
Sub TestFile()
Dim FileSysObj As Object
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\", True)
End Sub
クラス FileSystemObject のオブジェクトが必要です。 以下に示すように、クラスのオブジェクトを作成しましょう。
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
次に、以下に示すように CopyFile メソッドを適用します。
Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\", True)
コードを実行する前の出力:

コード実行後の出力:

Source、Destination、Overwrite の 3つのパラメータがあります。 source と destination は同じなので、overwrite を使用します。
true または false に修正する必要があります。
この場合、元のファイルが上書きされることを示す True に設定します。 これは私たちがすべきことですが、上書きを False に修正するとどうなるか見てみましょう。
これは、以下に示すように、コードを変更することによってのみ実行できます。
Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\", False)
出力:

その結果、エラーが発生します。 コピー中にファイルの名前を変更することもできます。 ファイルをコピーするのと同じです。
以下のコードに示すように、宛先パスを別の名前にカスタマイズするだけです。
Sub TestFile()
Dim FileSysObj As Object
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\testFile2.xlsx", True)
End Sub
出力:
