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
出力: