VBA|ダブルクォーテーション内で変数を使う方法

エクセルVBA VBAの基礎・入門



ダブルクォーテーション(”)を使っていますか?

VBAでは文字列を扱う場合には、ダブルクォーテーション(”)で囲む必要がありますが、「どうすればダブルクオーテーション(“)内で変数を使えるのでしょうか?」という質問を受けます。

今回は、ダブルクォーテーション内で変数を扱う方法について徹底的に説明していきます。



ダブルクォーテーション内で変数を使う方法

ダブルクォーテーション内では変数が使えない

まず前提として、ダブルクォーテーションで囲った部分(ダブルクォーテーション内)では変数が使えません。

例えば、VBAで「鈴木君の点数は95点です。」というようにテストの点数を表示させるような文字列を想定したときに、「95」の部分を変数「Tokuten」として定義して、変数Tokutenに95を代入します。

以下のように “鈴木君の点数はTokuten点です。” と、ダブルクォーテーション内に変数を入れてみます。

うまくいかないコード例:

Sub うまくいかない例()
    Dim Tokuten As Long
    Tokuten = 95
    MsgBox "鈴木君の点数はTokuten点です。"  'ダブルクォーテーション内に変数を入れるとうまくいかない
End Sub

実行結果:

案の定、ダブルクォーテーション内の変数「Tokuten」は、変数として扱われずに文字列として認識されてしまいます。

以上のように、変数はダブルクォーテーション内で使うことができません。

したがって、変数をダブルクォーテーションの外に出す必要がありますので、その方法について説明していきます。

変数はダブルクォーテーションの外に出し、連結させる

変数をダブルクォーテーションの外に出し、文字列と連結させるという方法を行います。

それには、文字列連結演算子である「&」を使います。

「&」を使えば、変数と文字列を連結して、任意のメッセージを表示できます。

ようするに、

うまくいかない例 ・・・  “鈴木君の点数はTokuten点です。”

うまくいく例   ・・・ “鈴木君の点数は” & Tokuten & “点です。”

のように文字列 「”鈴木君の点数は”」 と、変数「Tokuten」と、文字列「 “点です。”」を分けて、連結させる部分に「&」を挿入します。

変数と文字列を連結したコード例:

Sub 変数と文字列を連結()
    Dim Tokuten As Long
    Tokuten = 95
    MsgBox "鈴木君の点数は" & Tokuten & "点です。"  '「&」を使って変数と文字列を連結させる
End Sub

実行結果:

実行すると、文字列と変数が連結され、変数の箇所に代入された値が表示されます。

ちなみに、文字列連結演算子は「&」のほかに「+」も使えますが、「+」は算術演算子の加算を意味する演算子としても使用されるため、「&」を使用した方が間違いがありません。

【まとめ】ダブルクォーテーション内で変数を使う方法

変数は、ダブルクォーテーションで囲った部分(ダブルクォーテーション内)には使えません。

変数をダブルクォーテーションの外に出し、文字列と連結させるという方法を行います。

連結するには、文字列連結演算子「&」を使って、

“鈴木君の点数は” & Tokuten & “点です。”

のように連結したい箇所に「&」を挿入します。

VBAでは、文字列と変数を混在させる場合が頻繁にありますので、今回解説した文字列連結演算子「&」の使い方をぜひ覚えてくださいね。

 




VBAの基礎・入門
ブイサバ【Excel VBAサバイバル】~とりあえずここに来れば解決できる~

コメント

タイトルとURLをコピーしました