既存のファイルの特定のシートを別のファイルとして保存するというケースが非常に多いのですが、今回はそんなサンプルコードです。
やりたいこと
今開いているファイルの特定のシートだけを別名で保存したいというのが今回やりたいことです。
別名で保存する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
本サンプルコードでできること
- コードを記載しているファイルと同じフォルダに保存する(コードが実行されたファイルのフォルダパスを取得
- 特定のシートを別ブックにコピー
- ファイルを別名で保存する
全て実行すると、特定シートを別ブックにコピーして、別名で保存するところまで実行できます!!
さいごに
いかがでしたでしょうか?このコード結構使う頻度とっても多いです~。ぜひ使ってみてくださいね。
ではまた!
