かばくん
計算はできるようになりました!
次は、文字の扱い方について教えて下さい!
へびせんせい
VBAでは""(ダブルクォーテーション)で囲うと、その中は文字列として扱われます。
これはどのプログラミング言語でもおおよそ同じことです。
さらに、文字列の結合についても覚えてみましょう。
ほとんどのプログラミング言語では""で囲うと文字列として扱われる
文字列の基本 ""(ダブルクォーテーション)で囲う
そのまま文字列を扱う場合
これで、こんにちは と表示されます。
" "がないと、プログラムは「こんにちは」という変数を探してしまい、そんな変数は定義されていないのでエラーとなります。
文字列型の変数に代入する場合
msg = "こんばんは"
MsgBox msg
文字列型の変数に代入するときも、同様に""で囲う必要があります。
そして、MsgBoxで表示するときは、msgという変数名を指定しているので、" "は不要です。
もし、MsgBox "msg"としてしまうと、msg とそのまま表示されてしまいます。
文字列の結合は&(アンパサンド)でつなげる
2つの文字列を結合するときに使うのが&記号です。
実は、計算のときに使った加算記号+でも同様のことが可能ですが、ちょっとだけ使い方が異なります。
文字列と文字列の結合
MsgBox "こん" + "にちは"
文字列と文字列の結合の場合は、&と+では同じように結合されて「こんにちは」と出力されます。
文字列と数値の結合
MsgBox 2020 + "年になりました"
文字列と数値の場合は、結果が異なります。
&なら「2020年になりました」と正しく出力されますが、+だと、エラーとなってしまいます。
数値と数値の結合
MsgBox 20 + 20
数値と数値の場合も、やはり結果が異なります。
&では、文字列として結合されるため、「2020」となりますが、+だと、数値として扱われるので、当然ながら40と表示されます。
このように&と+で微妙に動作が異なります。
上記を踏まえると、文字列として結合したいときは、「&で結合する」と覚えておけば間違いありません。
文字列についての練習問題
へびせんせい
文字列型の変数msg1とmsg2を2つ定義し、さらに長整数型の変数nowyearを定義しなさい。
そして、「今年の西暦は、2020年です。」と、MsgBoxで変数を使って表示せよ。