「”」を含むVBA文字列を生成する

ダブルクォートエスケープ文字列生成API。

VBAで「」(ダブルクォーテーション)は、これで括られた文字列はVBAコードではないのでそのまま出力せよという意味を持ちます。この「”」自身を文字列として表示したい場合はエスケープシーケンスで対応するわけですが、VBAではまさかのエスケープ文字も「”」です。

つまり「”」を文字列として出力したければ「” ” ” ”」というコードになります。両端が文字列括り、2つめがエスケープ文字、3つ目が実際の表示文字です。半端なくわかりずらいです。

Pythonでは「”」は「’」による代替が許されるので「’ ” ’」で同じことが出来ます。文字列内に使用するクォーテーション記号の種類によって文字列括りの記号を変えるのはよくやる手法です。VBAではこれが出来ません。

このためHTMLなどの「”」が入り乱れる文字列をVBAで出力しようとすると大変です。途中に変数を組み込もうものなら、もはや暗号のようなコードになってしまいます。

たとえば<a>タグを出力したいなら

Dim url, elem
url = "https://expy-style.net"
elem = "<a href=""" & url & """ class=""item"" id=""home"">" & url & "</a>"

というようなありさまです。

ちなみにPythonだとシングルクォート括りと変数展開を利用すれば

url = 'https://expy-style.net'
elem = f'<a href="{url}" class="item" id="home">{url}</a>'

とエスケープなしでほぼ原型のまま記述できます。美しいですね。


さて、一見、複雑怪奇なこの「”」によるエスケープですが、実は極めて単純な法則のうえに成り立っています。人間が目で見て「”」をエスケープしていくと混乱してしまいますが、コンピューターが法則に従い処理していくのは造作も無いことです。やらせましょう。

ということで、APIにしてみました。Javascriptだけでもいける簡単な処理ですが、勉強も兼ねて。

利用方法

1.ページ下部のフォームに表示したい文字列を入力します。
文字括りのダブルクォーテーションは含めません。表示したい部分だけ。

2.GENERATE~ボタンを押すと、エスケープシーケンス入りの文字列を生成します。
文字列括りのダブルクォーテーションが付加されます。

escape_vba_str1.png

3.COPYボタンでクリップボードにコピーされます。

escape_vba_str2.png

4.VBAコードに貼り付けてご利用ください。

escape_vba_str3.png

途中に変数を組み込む場合は変数の前後で別個生成して&でつなげてください。
生成文字列 & 変数 & 生成文字列 という具合に。

ダブルクォートエスケープ文字列生成

利用上のご注意
  • このAPIを利用したことにより生じた結果については、利用者ご自身に責任を負っていただきます。
  • ご利用前に使用方法をご確認ください。
  • 当方は成果物の正確性について最善を尽くしますが保証はいたしません。
  • 送信されたデータはサーバーへ保存されることはありません。
  • 送信されたデータは成果物生成のためだけに利用され、他の用途に利用されることはありません。

related pages
この記事の
作成日

2020-01-16

更新日

2020-01-18

ページ内検索
目次
WEB MASTER
さいた
神エクセル撲滅協会理事(自称)
さいたま市民 埼玉こそ地上の楽園