アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel表をCSVで出力する際にセル内で改行またはカンマを含むものは ””(ダブルクォーテーション)で括って出力するという処理を施したいのですが、どうすればよろしでしょうか。

A 回答 (3件)

特に何もしなくても、


名前をつけて保存で CSV で保存すれば
改行またはカンマを含むセルはダブルクォーテーションで括られますが。

ActiveWorkbook.SaveAs Filename:="C:\Sample\Sample.csv", FileFormat:=xlCSV

当方、Windows10、Excel 2016
    • good
    • 0

下記はA1セルに改行またはカンマを含まれていた場合、””(ダブルクォーテーション)で括ったものに置換します。


元ファイルを残す必要がある場合は、csvに書き出す際に別名保存するようにしてください。

If InStr(Cells(1, 1), ",") <> 0 Or InStr(Cells(1, 1), Chr(10)) Then
 Cells(1, 1) = Chr(&H22) & Cells(1, 1).Value & Chr(&H22)
End If

これを全データセルにループさせて、csvに書き出せばよいです。
データ範囲の定義やセル参照を変数に修正する等の修正は必要です。


こういうのは、VBAよりも他のやり方(例えばVBSなど)でやるほうが速いでしょうね。VBAでやるなという意味ではなく、もっとよいやり方があるということです。
あと、抽象的すぎて回答しにくいですね。
    • good
    • 1

Sub Sample()


Open "C:\Sample\Data.csv" For Output As #1
Write #1, "北海道","青森"
Write #1, "岩手","山形"
Close #1
End Sub

ってVBAを動かすと、””(ダブルクォーテーション)が付きます。
Write文の代わりにPrint文を使うと、””(ダブルクォーテーション)は無しです。

※もしかしたら、
Write #1, "北海道","青森"
ではなく、
Write #1, "北海道";"青森"
だったかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!