【VBA】ダブルクォーテーションを文字列にするならChr(34)
文字列の中にダブルクォーテーションを入れるためには""と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に変換しているので文字化けしている可能性があります)
0 | 64 | @ | 128 | | 192 | タ | |
1 | 65 | A | 129 | ・ | 193 | チ | |
2 | 66 | B | 130 | ・ | 194 | ツ | |
3 | 67 | C | 131 | ・ | 195 | テ | |
4 | 68 | D | 132 | ・ | 196 | ト | |
5 | 69 | E | 133 | ・ | 197 | ナ | |
6 | 70 | F | 134 | ・ | 198 | ニ | |
7 | 71 | G | 135 | ・ | 199 | ヌ | |
8 | 72 | H | 136 | ・ | 200 | ネ | |
9 | 73 | I | 137 | ・ | 201 | ノ | |
10 | 74 | J | 138 | ・ | 202 | ハ | |
11 | 75 | K | 139 | ・ | 203 | ヒ | |
12 | 76 | L | 140 | ・ | 204 | フ | |
13 | 77 | M | 141 | ・ | 205 | ヘ | |
14 | 78 | N | 142 | ・ | 206 | ホ | |
15 | 79 | O | 143 | ・ | 207 | マ | |
16 | 80 | P | 144 | ・ | 208 | ミ | |
17 | 81 | Q | 145 | ・ | 209 | ム | |
18 | 82 | R | 146 | ・ | 210 | メ | |
19 | 83 | S | 147 | ・ | 211 | モ | |
20 | 84 | T | 148 | ・ | 212 | ヤ | |
21 | 85 | U | 149 | ・ | 213 | ユ | |
22 | 86 | V | 150 | ・ | 214 | ヨ | |
23 | 87 | W | 151 | ・ | 215 | ラ | |
24 | 88 | X | 152 | ・ | 216 | リ | |
25 | 89 | Y | 153 | ・ | 217 | ル | |
26 | 90 | Z | 154 | ・ | 218 | レ | |
27 | 91 | [ | 155 | ・ | 219 | ロ | |
28 | 92 | ¥ | 156 | ・ | 220 | ワ | |
29 | 93 | ] | 157 | ・ | 221 | ン | |
30 | 94 | ^ | 158 | ・ | 222 | ゙ | |
31 | 95 | _ | 159 | ・ | 223 | ゚ | |
32 | 96 | ` | 160 | | 224 | ・ | |
33 | ! | 97 | a | 161 | 。 | 225 | ・ |
34 | “ | 98 | b | 162 | 「 | 226 | ・ |
35 | # | 99 | c | 163 | 」 | 227 | ・ |
36 | $ | 100 | d | 164 | 、 | 228 | ・ |
37 | % | 101 | e | 165 | ・ | 229 | ・ |
38 | & | 102 | f | 166 | ヲ | 230 | ・ |
39 | 103 | g | 167 | ァ | 231 | ・ | |
40 | ( | 104 | h | 168 | ィ | 232 | ・ |
41 | ) | 105 | i | 169 | ゥ | 233 | ・ |
42 | * | 106 | j | 170 | ェ | 234 | ・ |
43 | + | 107 | k | 171 | ォ | 235 | ・ |
44 | , | 108 | l | 172 | ャ | 236 | ・ |
45 | – | 109 | m | 173 | ュ | 237 | ・ |
46 | . | 110 | n | 174 | ョ | 238 | ・ |
47 | / | 111 | o | 175 | ッ | 239 | ・ |
48 | 0 | 112 | p | 176 | ー | 240 | ・ |
49 | 1 | 113 | q | 177 | ア | 241 | ・ |
50 | 2 | 114 | r | 178 | イ | 242 | ・ |
51 | 3 | 115 | s | 179 | ウ | 243 | ・ |
52 | 4 | 116 | t | 180 | エ | 244 | ・ |
53 | 5 | 117 | u | 181 | オ | 245 | ・ |
54 | 6 | 118 | v | 182 | カ | 246 | ・ |
55 | 7 | 119 | w | 183 | キ | 247 | ・ |
56 | 8 | 120 | x | 184 | ク | 248 | ・ |
57 | 9 | 121 | y | 185 | ケ | 249 | ・ |
58 | : | 122 | z | 186 | コ | 250 | ・ |
59 | ; | 123 | { | 187 | サ | 251 | ・ |
60 | < | 124 | | | 188 | シ | 252 | ・ |
61 | = | 125 | } | 189 | ス | 253 | |
62 | > | 126 | ~ | 190 | セ | 254 | |
63 | ? | 127 | | 191 | ソ | 255 | |