VBATips

「ActiveSheetを別エクセルファイルに保存する」【VBAマクロ】

選択した範囲を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 列挙体]

コメント

タイトルとURLをコピーしました