• ベストアンサー

エクセルのカンマ区切りのCSV出力

エクセルのカンマ区切りのCSV出力について質問します。 CSVファイルとしてカンマ区切りで出力したいのですが、さらに各項目にダブルコーテーション(")をつけて出力したいのです。 例) 通常のCSV 01,02,03 やりたいCSV出力 "01","02","03" ご存知の方がいらっしゃいましたら回答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

参考URLをご覧になってみてはいかがでしょうか?

参考URL:
http://oshiete1.goo.ne.jp/qa1003287.html
allen376ersfan
質問者

お礼

参考になりました。ありがとうございます。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 簡単なマクロを作ってみました。ただし、これは、出力のみであって、CSVそのものを、そのままインポートすると、「"01","02","03"」は、「1,2,3」に戻ってしまいます。 以下の SWITCH の部分のパラメータによって、「""」の囲み方が変わります。 以下のマクロは、標準モジュールに取り付けると良いと思います。 標準モジュールへの取り付け方 Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、 Alt + Q で、画面を閉じます。 '---------------------------------------------------------------- Sub OutputCSV() 'CSV["" (クォーテーションマーク)]付き出力  Dim myFname As Variant  Dim Fno As Integer  Dim buf As String  Dim i As Long  Dim j As Long  Const QT As String = """"    '「""」を入れるかどうか  '0 =すべて, 1 =書式文字列のみ, 2 =すべてない  Const SWITCH As Integer = 0    '註:数値でも、'02 や書式文字列にしていれば、文字列として認識する    myFname = Application.GetSaveAsFilename("", "テキスト ファイル (*.csv), *.csv")  If myFname = False Then   Exit Sub  ElseIf Dir(myFname) <> "" Then   If MsgBox("同じ名前のファイルがあります。上書きしますか?", vbQuestion) = vbCancel Then    Exit Sub   End If  End If    With ActiveSheet.UsedRange   If WorksheetFunction.Count(.Cells) = 0 Then    MsgBox "データが一つもありません。", vbCritical    Exit Sub   End If      Fno = FreeFile   Open myFname For Output As #Fno   For i = 1 To .Rows.Count    For j = 1 To .Columns.Count     If Not IsEmpty(.Cells(i, 1).Value) Then           If SWITCH = 0 Then       buf = buf & "," & QT & .Cells(i, j).Text & QT      ElseIf SWITCH = 1 Then       If VarType(Cells(i, j).Value) = vbString Then        buf = buf & "," & QT & .Cells(i, j).Text & QT       Else        buf = buf & "," & .Cells(i, j).Text       End If      Else       buf = buf & "," & .Cells(i, j).Text      End If     End If    Next j    Print #Fno, Mid$(buf, 2)    buf = ""   Next i  End With  Close #Fno End Sub '----------------------------------------------------------------

allen376ersfan
質問者

お礼

マクロですね。私も考えました。ありがとうございます。 エクセルの機能であるかと思い、質問させていただきました。 回答ありがとうございます。

関連するQ&A