• ベストアンサー

エクセルのカンマ区切りの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

  • ダブルクォーテーションカンマ区切りのcsv形式ファイルへの変換方法

    Excelファイルをダブルクォーテーションカンマ区切りのcsv形式ファイルへ変換する方法を教えてください。 "●●","○"○,"◆◆"

  • EXCEL VBAでのCSVファイルの編集

    CSVファイル(ダブルクォーテーション)形式のファイルをEXCEL VBAにて行の編集(削除)をした後、上書き保存をしたらダブルクォーテーション区切りではなくカンマ区切りのCSVファイルの形式になってしまいます。 ダブルクォーテーション区切りのCSVファイルで上書き保存する記述があれば教えて下さい。おそらくEXCELでCSV形式の上書きはCSV2の形式で保存されるみたいです。 困っています。どなたかお助け下さい。

  • カンマ区切りCSVファイルをVBAで読み込みたい

    こんにちは。EXCELのVBAに詳しい方、どうか教えてください! カンマ区切りCSVファイルをEXCELに読み込みたいのですが、 CSVファイルのデータが金額のため、データ自体にもカンマが含まれていて、 金額のカンマでも分割されてEXCELのセルに収まってしまいます。 データの区切りのカンマと、金額のカンマを区別して読み込む良い方法はないでしょうか。 とても困っているので、お解りになる方どうかご回答をお願いいたします。 ・CSVファイルのデータ   1,000 , 2,000 , 1,500 , 3,000 , 1,000 , 2,500 , 2,000  ↑金額のカンマでデータが分割されないように読み込みたいのですが・・・

  • カンマ区切りのCSVファイルから""を削除したい

    初めて質問いたします 以下のような形式のCSVファイルがあります 例) 品名,数量,単価,金額 "りんご",1,150,150 "バナナ",10,200,2000 "メロン","1,000","2,000","2,000,000" 上記のように、品名にはダブルクォーテションがつき、 数量、単価、金額については桁区切りのカンマが発生する場合、ダブルクォーテーションで囲まれています 上記のようなデータを りんご,1,150,150 バナナ,10,200,2000 メロン,1000,2000,2000000 のように別ファイルへ出力するにはどのようにすればよいでしょうか? プログラムでの処理で、WSHを使ったものを教えていただけますと、幸いです よろしくお願いいたします

  • Excel VBAにてCSVファイルを読みたい

    ExcelにてCSVファイルを読んで処理をしたい。 ただし、CSVファイルをExcelでopenすると遅いので、 VBAにてファイルとして読み込みで処理をしたいのですが、 皆さんは、どのように行っていますか? ※CSVファイルは、テキスト区切り→"(ダブルコーテーション)です  テキスト区切り無しであれば、1行読んで、カンマをsplitすれば良いと思いますが。。。。

  • Access2000でのCSV出力(エクスポート)

    お世話になります。 Access2000を利用して、あるテーブルデータをCSVファイルとしてエクスポートしようとしています。 そのときに、すべての要素を「"」(ダブルコーテーション)で囲み(「,」カンマで区切り)たいのですが、 データ型が文字型のときは設定で上手く囲めるものの、数値型では値がそのまま出力されてしまいます。 数値型のフィールドもダブルコーテーションで囲む方法はありませんでしょうか? よろしくお願いいたします。 例)"ああああ","A10000",100         ↓   "ああああ","A10000","100" ← ここ

  • ExcelのCSV形式について

    ExcelデータをCSV形式で保存するとき文字列はダブルコーテーション、数字列はそのままでカンマ区切りしたいです。確か123のCSV形式はそうなってたと思います。お手数ですが御回答、宜しくお願い致します。

  • EXCELで保存しているファイルをCSV(カンマ区切り)にしたい

    EXCELで作成されたファイル(1)(拡張子:xls)をCSV(カンマ区切り)のファイル(2)(拡張子:csv)にしたいのですが、方法として、(1)をEXCELで開き、CSV(カンマ区切り)で保存し、(2)を作成する方法しかないのでしょうか? 例えば、DOSのコピーコマンドなどで変更する方法や、エクスプローラー上で拡張子を変更する方法などなど。 できれば、画面を開いたり、閉じたりしたくない(自動で変換させたい) 宜しくお願い致します。

  • カンマ区切りでないテキストをcsvへ

    カンマ区切りしていないテキストファイルを一気にカンマ区切りしてcsvに変更することはできないのでしょうか?? 元のテキストファイルをワードパッドで開いてカンマ区切りし直して保存し、名前の変更でcsvに変更(拡張子が変更するとファイルが使用できなくなる可能性あり、というエラーは無視)したら読み込めるようにはなります。 しかしカンマ区切りし直すというのは面倒です。

  • カンマ区切りのcsvファイルを…

    カンマ区切りのcsvファイルをExcelで別々のセルに読み込むVBAのプログラムを作りたいんですが、なかなか調べても見つかりません。 プログラムもしくは参考になるサイト等あればお願いします。

専門家に質問してみよう