VBA ファイルをコピーするFileCopyステートメント 名前を変更するNameステートメント

スポンサーリンク

FileCopy【ファイルコピー】ステートメント

ファイルをコピーするには、FileCopy【ファイルコピー】ステートメントを使用します。コピー後のファイル名や保存先を指定できるので、バックアップの用途などにも利用ができます。

FileCopy【ファイルコピー】ステートメントの書式と設定値の説明

FileCopy Source,Destination

  • Source【ソース】(必須)
    コピー元のファイル名を指定します。パスを含めて指定できます。ファイル名のみ指定した場合は、カレントフォルダーのファイルが操作対象になります。
  • Destination【デスティネーション】(必須)
    コピー先のファイル名を指定します。パスも含めて指定できます。コピー元と異なるファイル名を指定すれば別名でファイルをコピーできます。コピー元と異なるパスを指定すれば、別のファルダーにコピーできます。ファイル名のみ指定した場合は、カレントフォルダーにコピーされます。コピー先のフォルダーに同じ名前のファイルが存在する場合は
    上書きされます。

開いているファイルに対してFileCopyステートメントを実行するとエラーになります。エラーに対する処理が必要になります。

コード例

Sub ファイルコピー()
Dim ファイル名 As String
ファイル名 = "¥バックアップBook10.xlsx"
On Error GoTo エラー処理
FileCopy Source:=ThisWorkbook.Path & "¥Book10.xlsx" _
, Destination:=ThisWorkbook.Path & ファイル名
MsgBox ファイル名 & "作成しました。"
Exit Sub
エラー処理:
MsgBox "指定のファイルはありませんまたは、開いています。"
End Sub

※同じパスにBook1のコピーをバックアップBooK1.xlsxという名前で作成するコード例です。
※コピー元のファイルが無い場合や開いている場合はエラーになるので
On Error GoTo(オンエラーゴトウ)ステートメントでエラー処理をします。
※マクロを記述しているファイルのバックアップを作成するコードは
上書き保存でバックアップ用ブックを自動で作成するをご覧ください。


Name【ネーム】ステートメント

ファイル名やフォルダー名を変更するには、Name【ネーム】ステートメントを使用します。変更後の名前を指定するとき別なパスを指定できるため、ファイルやフォルダーを移動したいときにも使用できます。

Name【ネーム】ステートメントの書式と設定値の説明

Name Oldpathname As Newpathname

  • Oldpathname【オールドパスネーム】(必須)
    変更前のファイル名またはフォルダー名を指定します。
    パスを含めて指定できます。ファイル名またはフォルダー名にワイルドカード文字は使用できません。ファイル名のみを指定した場合はカレントフォルダーのファイル・フォルダーが操作対象になります。
  • Newpathname【ニューパスネーム】(必須)
    変更後のファイル名またはフォルダー名を指定します。
    パスを含めて指定できます。ファイル名のみを指定した場合はカレントフォルダーのファイル・フォルダーが操作対象になります。変更前と異なるパスを指定すれば、別のフォルダーに移動できます。変更前と異なるパスで変更前と同じファイル名に設定した場合は、ファイルの移動になります。

コードと解説

Sub 名前変更()
On Error GoTo エラー処理
Name ThisWorkbook.Path & "¥準備データ¥データ準備.xlsx" _
As ThisWorkbook.Path & "¥配布用データ¥データ.xlsx"
MsgBox "作成しました。"
Exit Sub
エラー処理:
MsgBox "指定のファイルはありませんまたは、開いています。"
End Sub
マクロが記述されているブックと同じパスにある、準備データフォルダーの中にある「準備データ」ファイルを同じパスにある配布用フォルダーに「データ」という名前に変更して移動しています。準備データフォルダーは他のファイルが無ければ空になります。

以上で、FileCopy【ファイルコピー】ステートメントとName【ネーム】ステートメントについての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告