複雑なコードを書いていると、文字列内にダブルクオーテーション(“)で使いたいときってありますよね。
そんなとき何も考えずに以下のようにやってしまうと・・・
こんな感じでコンパイルエラーが出ると思います。
というわけでこの記事では、VBA上で文字列にダブルクオーテーション(“)を使用するにはどうしたら良いのかを解説していきます。
ダブルクオーテーションを文字列内で使う方法①
まずはVBA上で文字列内にダブルクオーテーションを使う際、どう表現するのかを説明します。
実は非常に簡単で ” を二つ重ねるだけです。
要は””と書けば”として扱われるわけです。
VBA上でダブルクオーテーションを使う方法②
2つ重ねるというのは直観的でわかりにくい・・・という方はChr関数を使うと便利です。
Chr関数とはあらかじめ登録されている文字を呼び出すことができる関数です。
Chr関数の中にもダブルクオーテーションは含まれており、その使い方は以下の通りです。
これでダブルクオーテーションを表現できます。
文字列内に”を使用する例
とはいえこれだけではイメージしにくいと思いますので、実際の使用例を見てみましょう。
今回は両サイドのダブルクオーテーションを含めた「 ”ヒガサラblog” 」および中間にダブルクオーテーションがある「VBAスキル紹介 ”ヒガサラblog” !!」という2つの文字列をVBA上で表現していこうと思います。
これらをメッセージボックスで表示できたら成功ということにしましょう。
以下がそのサンプルコードです。
Sub make_dq1()
Dim sample1 As String, sample2 As String
sample1 = """ヒガサラblog"""
MsgBox sample1
sample2 = "VBAスキル紹介 ""ヒガサラblog"" !!"
MsgBox sample2
End Sub
sample1について詳細に解説します。
まず以下の赤文字で示したダブルクオーテーションは文字列の両端に置くことで文字列であることを表現するためのものですね。
““”ヒガサラblog””“
これはいつもと同じなのでわかりやすいでしょう。
先ほど紹介したように文字列内で”を表現するためには””を使います。
つまり以下の赤文字は文字列内では”として機能しています。
““”ヒガサラblog“””
sample2についても基本的な考え方は同じですね。
それでは実際に実行してみましょう。
以下のメッセージが表示されました。
どちらも問題なく文字列内にダブルクオーテーション(”)が出力されていますね。
直観的にわかりにくい場合の対処
というわけでざっくりやり方はわかっていただけたと思います。
しかしながら、
「このやり方だと変数なんかを使うと、どこからどこが区切りなのかがよくわからない。」
という方もいると思います。
そんな方に向けて別のやり方をご紹介しておきます。
考え方としては、
①”が””になるからわかりにくい。
②だったら”を表現する変数を作ってしまえ。
という感じです。
実際にやってみましょう。
以下がそのサンプルです。(sample1だけで実施します。)
Sub make_dq2()
Dim sample1, dq As String
dq = """"
'Chr関数を使う場合
'dq = Chr(34)
sample1 = dq & "ヒガサラblog" & dq
MsgBox sample1
End Sub
ここでのdqは、先ほどの考え方に当てはめると”という文字列が入っています。
つまりこのdqを&でくっつければ直観的に”を使えるというわけですね。
こいつを実行すると以下が出力されました。
この方法でも問題なしですね。
まぁやっていることは同じですので、あなたのやりやすい方を使っていけばOKです。
おわりに
というわけで今回は文字列中にダブルクオーテーションを含めるにはどうしたら良いのかを解説してきました。
複雑な文字列処理の際などにぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント