VBAでのダブルコーテーションの使い方。

自分で苦労したので、VBAでのダブルコーテーションの使い方を備忘録もかねて掲載します。

CSV内の、URLが混ざっているテキスト内容の一部を修正して戻すというマクロを作ったのですが、CSV作成時に途中から改行が入ってしまい、うまくいかない。

Print #IntFlNo, recfile …
を使用して作成。
原因が全くつかめなかった。
※直接手動保存なら問題なし。

ちなみに、その項目はダブルコーテーションで括っている。

ググっても全く同事象も見つけられず、やり方を変えようかと思っていたところ…

手動とちょっと違う、ダブルコーテーションの数が…

HTML内にURLがあり、そのURLがダブルコーテーションで括られているのだが、手動保存時にうまく作られるCSVデータにはダブルコーテーションが二個づつURLの前後についている

そこで、同じようにマクロで出力できるように変更したらうまくいった。

確定ではないのだが…

255文字を超えて、ダブルコーテーションが使われているとこの現象が出るような気がします。
検証中です。

今回の対処方法

Replace(set_data01.Offset(0, CNT02).value, """", """""")

Replaceでダブルコーテーション4つを6つにしています。
4つの真ん中の2個でダブルコーテーション1つを表します。
入れ替えるのは6つの真ん中の4個でダブルコーテーション2つを表します。
これで、URLの前後にあったダブルコーテーションが1つから2つになりました。
紛らわしい…

"""" & WORK02 & """"

これは4個なので、ダブルコーテーションを前後に1個づつ付けてます。


   CNT02 = 0
   recfile = set_data01.Offset(0, CNT02).value
   For CNT02 = 1 To 35
       If CNT02 = 14 Then
          '### データー内のダブルコーテーション1個を、2個にする。
          WORK02 = Replace(set_data01.Offset(0, CNT02).value, """", """""")
          '### データーをダブルコーテーション1個づつで括る。
          WORK03 = """" & WORK02 & """"
          recfile = recfile & "," & WORK03
       Else
          recfile = recfile & "," & set_data01.Offset(0, CNT02).value
       End If
   Next CNT02
   Print #IntFlNo, recfile
   CNT03 = CNT03 + 1

応用でいろいろ使えそうなので、いいのがあったらまたUP致します。

以下では、HTMLを作成する際の簡単な書き方が書いてあります。
併用すると何でもできそうですね。