前提・実現したいこと
VBAでcsvの情報を変更するコードを書いています。
最終的にダブルコーテーションで囲まれた文字列のcsvを書き出したい
発生している問題・エラーメッセージ
xlsmではダブルコーテーション1つで囲まれていますが、CSVをテキストエディタで確認するとエスケープコードまで含んだ3つのダブルコーテーションになってしまいます。
* 出力したいCSV文字列 "1"
* 現状のCSV文字列 """1"""
該当のソースコード
VBA
1Sub test() 2 Dim i As Long 3 For i = 2 To 4 4 Cells(i, 1) = Chr(34) & Cells(i, 1) & Chr(34) 5 Next 6End Sub 7
出力したい結果
テキストエディタやメモ帳で開いた時にダブルコーテーションが1つになっている状態
変数かループによるセル指定をダブルコーテーションで囲む出力方法についてご教示頂けると幸いです。
初心者なので質問自体がわかりずらい点があるかと思います。ご容赦ください。
値が「"1"」ならCSVで「"""1"""」と出力するのは正常だと思うんですが。
どういう出力を望んでいましたか?
ありがとうございます。出力したい結果として、テキストエディタやメモ帳で開いた時にダブルコーテーションが1つになっている状態にしたいです。
質問内容に画像を追記させて頂きました。
それが目的であればExcel上で「"1"」となっているセルを「1」にすれば解決すると思いますが。
ありがとうございます。そうするとダブルコーテーションのないcsvになってしまうのです。。
そういった特殊な出力(A列の2行目以降のフィールドのみくくる?)をしたいなら自力で出力処理を書くしかないですね。CSVとしては何の意味もないですけど。
わかりました。ありがとうございます。