【VBAと文字列】ダブルクォーテーションでなくChr関数を使おう

2021年6月19日

文字列の中にダブルクォーテーションを入れるためには""と2つ並べる必要があります。

つまり、ダブルクォーテーションだけを表示するにはこのように書きます

MsgBox """"                              'ダブルクォーテーションだけを表示
MsgBox "ダブルクォーテーションは""の事です" '文字列の間に挟む

読みにくっ!

ダブルクォーテーションが""の上に、文字列は""で囲む必要があるので、""""とダブルクォーテーションを4つ並べる必要があるのです。

さらに変数を間に挟んで、"""" & str & “""" みたいな使い方をすると絶望的に可読性が悪くなります。

そんな困りもののダブルクォーテーションですが、Chr関数を使えば一発で解決します。

“"""みたいに書いている人はChr関数を覚えて帰ってください。

ダブルクォーテーションの代わりはChr(34)

Chr関数は、ASCII【アスキー】コードに対応した文字列を返してくれる関数です。

この関数を使えばダブルクォーテーションをChr(34)に置き換えることができます。
例えば、冒頭のコードは次のように書き換えできます。

MsgBox Chr(34)                                        'ダブルクォーテーションだけを表示
MsgBox "ダブルクォーテーションは" & Chr(34) & "の事です" '文字列の間に挟む

ダブルクォーテーションを連打したコードに比べて、だいぶスッキリしました。

変数を間に挟む場合も"""" & str & “""" が Chr(34) & str & Chr(34)となります。

ダブルクォーテーションを並べると見返すのがしんどいコードになるので、Chr関数に置き換えて可読性の良いコードに変換してみてください。

Chr関数の他の文字は?

通常ASCII【アスキー】コードは0~255の256種類があり、0~31印刷できないコードです。

0 から 31 の数値は、標準の印刷できない ASCII コードと同じです。 たとえば、Chr(10) は改行文字を返します。 charcode の通常の範囲は 0 から 255 です。

https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/chr-function

他にはどんな文字列があるのか気になる人もいるかと思い、一覧表にしてみました。
気になる方はご覧あれ。
(一度Excelシートに書きだしてからHTMLに変換しているので文字化けしている可能性があります)

064@128€192
165A129193
266B130194
367C131195
468D132196
569E133197
670F134198
771G135199
872H136200
973I137201
1074J138202
1175K139203
12 76L140204
1377M141205
1478N142206
1579O143207
1680P144208
1781Q145209
1882R146210
1983S147211
2084T148212
2185U149213
2286V150214
2387W151215
2488X152216
2589Y153217
2690Z154218
2791[155219
2892¥156220
2993]157221
3094^158222
3195_159223
3296`160224
33!97a161225
3498b162226
35#99c163227
36$100d164228
37%101e165229
38&102f166230
39103g167231
40(104h168232
41)105i169233
42*106j170234
43+107k171235
44,108l172236
45109m173237
46.110n174238
47/111o175239
480112p176240
491113q177241
502114r178242
513115s179243
524116t180244
535117u181245
546118v182246
557119w183247
568120x184248
579121y185249
58:122z186250
59;123{187251
60<124|188252
61=125}189253
62>126~190254
63?127191ソ255

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい