VBAでファイルをコピー

Iqra Hasnain 2024年2月15日
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)

コードを実行する前の出力:

vba 最初の例でファイルをコピー

コード実行後の出力:

コードの実行後に vba の最初の例でファイルをコピー

SourceDestinationOverwrite の 3つのパラメータがあります。 sourcedestination は同じなので、overwrite を使用します。

true または false に修正する必要があります。

この場合、元のファイルが上書きされることを示す True に設定します。 これは私たちがすべきことですが、上書きを False に修正するとどうなるか見てみましょう。

これは、以下に示すように、コードを変更することによってのみ実行できます。

Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\", False)

出力:

上書きを false にして vba にファイルをコピー

その結果、エラーが発生します。 コピー中にファイルの名前を変更することもできます。 ファイルをコピーするのと同じです。

以下のコードに示すように、宛先パスを別の名前にカスタマイズするだけです。

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

出力:

名前を変えて vba にファイルをコピー

関連記事 - VBA File