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