前回、改行の置換の各種やり方をやりました。
今回はダブルクォーテーション(”)の置換を調べてみました。
ほかのシステムからエクセルにインポートしたときにデータにダブルクォーテーションがついていて邪魔だなと思ったときに置換してなくしたりすることがありましたので。
①VBAでダブルクォーテーションを置換
CHAR(34)がダブルクォーテーションとなるとのことで、CHAR(34)を指定して置換ができました。
Sub ダブルクォーテーション置換()
Dim i As Long
For i = 1 To 3
Cells(i, 1).Value = Replace(Cells(i, 1).Value, Chr(34), “”)
Next i
End Sub

実は、はじめ以下ようにやりまして。。。
ダブルクォーテーションをダブルクォーテーションで囲ったらエラーになりました。

ダブルクォーテーションをダブルクォーテーションでかこったら中のダブルクォーテーションを文字列として認識してくれるんじゃないの?とおもったら、怒られました。
以下のようにダブルクォーテーションの前にもう一つダブルクォーテーションをつけるとよいそうです。つまりダブルクォーテーションよっつ。
Dim i As Long
For i = 1 To 3
Cells(i, 1).Value = Replace(Cells(i, 1).Value, “”””, “”)
Next i
これはただの文字列としてのダブルクォーテーションですよ!としたいときは左にひとつダブルクォーテーションを添えると「ああ、ただの意味のない文字列としての ” ね」とパソコンさんが認識してくれるようです。

“”は2文字だけであれば空文字列ですが、文字列内にある場合はダブルクォーテーション1文字になります。
こちらのサイトから引用。わかりやすい説明でした。ありがとうございました。
VBAでの文字列のダブルクォーテーションの使い方 | Excel作業をVBAで効率化 (vbabeginner.net)
②関数でダブルクォーテーションを置換
SUBSUTITUTE関数でダブルクォーテーションを「a」に置換してみました。
ダブルクォーテーションの指定の仕方は①と同じやり方でできました。

ダブルクォーテーション4つ連続またはCHAR(34)で「”」を指定できました。
③検索と置換の「置換」でダブルクォーテーションを置換
なんのことはない。普通にできました。

以上です。
最後までお読みいただきありがとうございました。
コメント