選択した範囲をCSV出力したい
Excelで、特定の範囲をCSVファイルに出力し
他アプリケーションへインポートさせたいケースがあります。
下記のようにActiveSheetや、すべてのシートをCSVエクスポートするケースだけではなく、
シートの作成上、一部分だけCSV出力させたいケースもあるかと思います。
選択した範囲のCSV出力サンプルコード
範囲選択した部分(Range)をCSVファイルとして出力するマクロは以下です。
'■現在開いているシートをCSVデータで保存する Public Sub call_RangeSaveCSV() Dim fPath As String Dim fName As String Dim rng As Range '■現在開いているブック情報をファイル名にするため、変数に格納 fPath = ActiveWorkbook.Path & "\" fName = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "csv" Application.DisplayAlerts = False '■現在選択しているセル情報をrngに格納 Set rng = Selection '■新規ブック作成→rngをA1にコピー→CSV保存→CSV閉じる Workbooks.Add rng.Copy ActiveSheet.Range("A1") ActiveWorkbook.SaveAs Filename:=fPath & fName, FileFormat:=xlCSV ActiveWindow.Close Application.DisplayAlerts = True End Sub [/vbnet]
注意点
- 個人用マクロブックでご紹介していますが、アドイン化も一つの手です。
- CSVは基本、ダブルクォーテーションでは囲いません。
- 数値がカンマ(,)区切りになっている場合は、該当値をダブルクォーテーションで囲います。
- 保存先のファイルが既に存在してた場合は、強制的に上書きします。
コメント