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