既存のファイルの特定のシートを別のファイルとして保存するというケースが非常に多いのですが、今回はそんなサンプルコードです。

 

やりたいこと

今開いているファイルの特定のシートだけを別名で保存したいというのが今回やりたいことです。

 

別名で保存するVBAコード

早速VBAコードを記載します。

Sub ExportFile()
    '----------------------------------------------------
    ' コードが実行されたファイルのフォルダパスを取得
    '----------------------------------------------------
    Dim exportPath As String
    ' 出力先とファイル名を指定
    ' ・ThisWorkbookはこのコードが記載されたファイルを指定
    ' ・↓の例では、「このファイル」の「今日の日付をyyyymmddで取得」_「最後は拡張子」
    ' 文字列と関数や変数を結合するときは「&」を忘れない
    exportPath = ThisWorkbook.Path & "\" & Format(Date, "yyyymmdd") & "_ExportFile.xlsx"

    '----------------------------------------------------
    ' 特定のシートを別ブックにコピー
    '----------------------------------------------------
    myWorkBook = ThisWorkbook.Name                          ' マクロを実行中のブック名を取得
    Workbooks.Add                                           ' 新規にブックを追加します。
    NewWorkbook = ActiveWorkbook.Name                       ' 追加したブックの名前を取得
    Workbooks(myWorkBook).Activate              			' 実行中のブックを最上面に移動
    Workbooks(myWorkBook).Sheets("シート名").Copy Before:=Workbooks(NewWorkbook).Sheets(1)   ' 特定のシートを新規ワークブックにコピー
    ' 全てのシートを再表示
    Dim sh As Worksheet
    For Each sh In Workbooks(NewWorkbook).Worksheets
        sh.Visible = True
    Next
    ' Sheet1シートを削除
    Application.DisplayAlerts = False
    Workbooks(NewWorkbook).Sheets("Sheet1").Delete

    '----------------------------------------------------
    ' ファイルを別名で保存する
    '----------------------------------------------------
    ' 新規ワークブックを指定のフォルダに格納
    ActiveWorkbook.SaveAs Filename:=exportPath
    ' ワークブックを閉じる
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

End Sub

 

 

本サンプルコードでできること

  •  コードを記載しているファイルと同じフォルダに保存する(コードが実行されたファイルのフォルダパスを取得
  • 特定のシートを別ブックにコピー
  • ファイルを別名で保存する

全て実行すると、特定シートを別ブックにコピーして、別名で保存するところまで実行できます!!

 

さいごに

いかがでしたでしょうか?このコード結構使う頻度とっても多いです~。ぜひ使ってみてくださいね。

 

ではまた!