【VBA】実行中のブックをコピーする

VBAで
 ・VBAを実行中のブックをコピー
できます!

PR

前提

ここでは例として、
 ・ファイル「sampl_001.xlsm」
にVBAコードを記述して実行します。

ファイル「sampl_001.xlsm
ファイル「sampl_001.xlsm
PR

VBAコード

ここでは例として
 ・実行中のブック「sampl_001.xlsm」を
 ・ファイル名「コピー後ファイル.xlsm」としてコピー
します。
※今回はデスクトップ配下へコピーします。

Option Explicit

Sub sample()
    
    Dim wsh As Object
    Dim desktopPath As String
    Dim newFileName As String
    
    'デスクトップのパスを取得
    Set wsh = CreateObject("WScript.Shell")
    desktopPath = wsh.SpecialFolders("Desktop")
    
    'コピー後のファイル名を指定
    newFileName = "コピー後ファイル.xlsm"
    
    'このブックをコピー
    ThisWorkbook.SaveCopyAs Filename:=desktopPath & "\" & newFileName
    
    '後片付け
    Set wsh = Nothing
    
End Sub

デスクトップのパスを取得します(10~11行目)。

コピー後のファイル名を指定します(14行目)。
※VBAを実行中のブック(xlsmファイル)をコピーするため、拡張子は「xlsm」とします。

「Workbookオブジェクト」の「SaveCopyAs」により、実行中のブックをコピーします(17行目)。
※パラメーター「Filename」にコピー先のファイルパスを指定します。

PR

実行結果

実行中のブックをコピーできました。

実行結果
実行結果
PR

参考①

上記のVBAコードは、以下の記事を参考にして作成しました。

●デスクトップのパスを取得する

PR

参考②

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Workbook」オブジェクトの「SaveCopyAs」メソッド