選択した範囲を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 [/vbnet]
注意点
- 保存先のファイルが既に存在してた場合は、強制的に上書きします。
関連記事
「指定した範囲をタブ区切り(TSV)テキスト出力して保存する」【VBAマクロ】
「指定した範囲をCSV出力して保存する」【VBAマクロ】
「ActiveSheetをPDF保存する」をパーツ化する【ショートカットキー】【VBAマクロ】
「ActiveSheet以外のWorkSheetを削除する」【エクセルVBA】
【VBA一覧】「名前を付けて保存」「ファイルを保存する」に使う拡張子[XlFileFormat 列挙体]
コメント