| 
        
          
            | VocExcel(単語帳) / VBA Tips 
 [Key] エクセル / Excel / VBA /マクロ
 
 
 |  <--- 戻る
 
 
 
  
    
            | CSV形式で保存 |  
            | 
  サンプルファイル カンマ区切りのCSV形式で保存します。
 セルに半角「,」がある場合は、あらかじめ全角「,」に置換して下さい。
 
 
 |  
            | 
            Sub CSVOut_A()
 
 Dim Folder1 As String
 Dim CSVFile As Workbook
 Dim PrebookName As String
 Dim PreLastRow As Long
 Dim fileNME As String
 Dim VocExcelCSV As String
 
 
 
 On Error GoTo line
 
 
 '############# CSVフォルダを作成
 
 Folder1 = "CSV"
 
 ChDrive ThisWorkbook.Path
 ChDir ThisWorkbook.Path 'エクセルファイルのある場所に移動する
 
 If Dir(ThisWorkbook.Path & "\" & Folder1, vbDirectory) = "" Then 'folder1の中身が空だったら
 
 MkDir Folder1 'Folder1 = "CSV" / フォルダ名「CSV」のフォルダを作成
 
 End If
 
 
 
 Application.ScreenUpdating = False
 
 
 '############# 必要なパスなど
 
 ChDrive ThisWorkbook.Path
 ChDir ThisWorkbook.Path 'エクセルファイルのある場所に移動する
 
 
 
 
 '############# 単語帳の元データをコピーしておく
 
 PrebookName = ActiveWorkbook.Name                        '※1
 
 Workbooks(PrebookName).Activate
 ActiveSheet.Select
 
 
 PreLastRow = ActiveSheet.Cells(65536, "B").End(xlUp).Row  '最終行
 ActiveSheet.Range(Cells(10, "B"), Cells(PreLastRow, "AZ")).Select
 
 Selection.Copy
 
 
 
 
 
 
 '############# 新しいワークブック開く
 Set CSVFile = Workbooks.Add(xlWorksheet)
 
 
 
 
 '############# 新しいワークブックをCSVファイルとして保存する
 
 fileNME = "VocCSV_" & Format(Date, "yymmdd") & "_" & Format(Now, "hhmmss") & ".csv"
 VocExcelCSV = ThisWorkbook.Path & "\CSV\" & fileNME  'ファイル名の決定
 
 
 With CSVFile
 .Sheets(1).Cells(1, "A").Select
 
 Selection.PasteSpecial Paste:=xlValues '値のみ
 'Selection.PasteSpecial Paste:=xlFormats '書式のみ
 
 Application.DisplayAlerts = False
 .SaveAs VocExcelCSV, xlCSV '実際にCSVファイルを保存する
 .Close Savechanges:=False
 End With
 
 
 
 '############ 後処理
 
 With Application
 .CutCopyMode = False
 .DisplayAlerts = True
 '.ScreenUpdating = True
 End With
 
 
 
 MsgBox "《CSV出力》CSVフォルダーに保存しました。 " & Chr(13) & Chr(13) & "→ ファイル名 : " & fileNME
 
 
 Application.ScreenUpdating = True
 
 
 Exit Sub
 
 
 line:
 
 MsgBox "エラーが発生しました。処理を中止します。"
 
 Application.ScreenUpdating = True
 
 End Sub
 
 |  | -- |