Excelファイルをcsvデータにして保存
前提条件
問題点
以上の点を踏まえた仕様
- 関数はPERSONAL.XLSB上に作成し、どのExcelファイルからも汎用的に呼び出せるようにする
- 元のExcelファイルとは別領域に保存用ファイルを作成し、そのファイルをcsvファイルとして保存することで、元データはそのまま存在し続けるようにする
Sub SaveCopyCSV()
'----FileSystemObjectを使用する
'----参照設定:Microsoft Scripting Runtimeのチェックを忘れずに
Dim objFSO As New FileSystemObject
'保存対象ActiveBookをobjectに格納
Dim wbTargetBook As Workbook
Set wbTargetBook = ActiveWorkbook
'保存ファイル名
Dim strSaveFile As String
'保存ファイル名 = 現在のフォルダ+現在のファイル名+拡張子csv
strSaveFile = wbTargetBook.Path & "\" & objFSO.GetBaseName(wbTargetBook.Name) & ".csv"
'元ファイルをTmpファイルとしてコピーする(これ以後TmpファイルがActiveWorkBook)
wbTargetBook.ActiveSheet.Copy
'CSVファイルにして保存、csvファイルは保存後閉じる
ActiveWorkbook.SaveAs Filename:=strSaveFile, FileFormat:=xlCSV
ActiveWorkbook.Close
'元ファイルをActiveに戻す
wbTargetBook.Activate
End Sub
下記フォルダ内のTest.xlsxファイル
ファイルの中身
マクロを呼び出す PERSONAL.XLSBのSaveCopyCSV
実行後、同フォルダにcsvファイルが作成されている
内容
実行後、元ファイルはActiveに戻っている