選択した範囲をxlsx出力したい
Excelで、特定のシートを別のExcelファイル(xlsx/xlsm/xls)に出力したいケースがあります。
下記のように指定範囲や、すべてのシートをCSVエクスポートするケースだけではなく、
シートの作成上、一部のシートだけ別ファイルへ出力させたいケースもあるかと思います。
「ブックをシート毎にxlsx保存(分割保存)する処理」をパーツ化する。【エクセルVBA】
「指定した範囲をxlsx出力して保存する」【VBAマクロ】
今回は、ActiveSheetをxlsxファイルとして出力するマクロをご紹介します。
選択した範囲のxlsx出力サンプルコード
'■現在開いているシートを別エクセルデータとして保存する
Public Sub call_SaveXLSX()
Dim fPath As String
Dim fName As String
'■現在開いているシート情報を変数に格納
'今回は「ブック名_シート名.xlsx」の名前で保存。
fPath = ActiveWorkbook.Path & "\"
fName = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1) & "_" & ActiveSheet.Name & ".xlsx"
Application.DisplayAlerts = False
'■新規ブック作成→xlsx保存→xlsx閉じる
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=fPath & fName, FileFormat:=xlWorkbookDefault
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
注意点
- 保存先のファイルが既に存在してた場合は、強制的に上書きします。
関連記事
「指定した範囲をタブ区切り(TSV)テキスト出力して保存する」【VBAマクロ】
「指定した範囲をCSV出力して保存する」【VBAマクロ】
「ActiveSheetをPDF保存する」をパーツ化する【ショートカットキー】【VBAマクロ】
「ActiveSheet以外のWorkSheetを削除する」【エクセルVBA】
【VBA一覧】「名前を付けて保存」「ファイルを保存する」に使う拡張子[XlFileFormat 列挙体]



コメント