前回の復習
前回の内容は理解できているだろうか? VBEを開き、メッセージを表示させるプログラムを書いて、実行し、メッセージボックスを表示させ、最後にxlsmで保存する事ができれば、内容を理解していると言える。ここまで1分を切ることができただろうか?
VBEに慣れてくれば1分を切るのは難しくないと思う頑張ってみてくれ。
【コラム】 繰り返す事で得意になれる
プログラムを書く手順を1回だけで覚えたと感じていないだろうか?
実は1回だけでは、自分の見落としている点に気付く事はできない。
紹介する手順は1回で理解したと思わず、3回(できれば5回)は繰り返す事をお勧めしたい。
1回目は手順を見ながら何とかできた。
2回目は1回目より良いが、理解できていない手順が見つかった。
3回目は出来なかった所を意識したので出来るようになった。
4,5回目は、次の手順を思い浮かべられるようになった。
という感じで繰り返しの中で無意識に手が動くようになれば手順をマスターしたと実感できるだろう。
プログラムを変更していく
VBEには慣れて貰ったものとして、次に進んで行こう。
前回のプログラムでは、メッセージボックスを扱った。
メッセージボックスは、空白を挟んで次の文字列を表示させる関数だ。
MsgBox “Hello world”
専門的に言うと、「文字列を引数に渡している」ということになる。
引数とは、関数に渡す値の事を指している。
(単純なことを難しそうに言っているだけなので、深刻に考える必要はない。)

文字列
さて、今回は「文字列」に焦点を当ててみたい。
皆さんは、 “Hello world” として値を渡したのに、メッセージボックスに表示されたのが、Hello world だった事に気づいただろうか?
つまり “” (2つのダブルクォーテーション)は省略されていたという事だ。
VBAでは、「文字列はダブルクォーテーションで囲む」というルールがある。
だから上のプログラムは、
Hello world という文字列を、VBAのルールで “Hello world” という形にして、MsgBox に渡した事になる。
Sub test()
MsgBox Hello world
End Sub
として実行した人は、「コンパイルエラー」が発生したはずだ。その時は分からなくても “” を忘れると上手く動かないのかと思ったはずだ。
※ちなみにエラーが出た時は「終了」ボタンで終了して構わない。
では、以下のようにして実行したらどうなるだろうか?
Sub test()
MsgBox 123
End Sub
なんと、問題なく実行される。
実は、数値に関しては、MsgBoxが文字列に変換して表示してくれる仕様なのだ。
もちろん数字を文字列として渡しても何の問題もない。
Sub test()
MsgBox "123"
End Sub
文字列の連結
文字列の連結についても触れておこう。
2つ以上の文字列を連結する時は & (アンパーサント)で繋げる。
Sub test()
MsgBox "Hello " & "world"
End Sub
と書けば、先程と同じように Hello world という文字列が表示される。
Sub test()
MsgBox "Hello world" & 123
End Sub
というように文字列と数字を組み合わせる事もできる。 Hello world123 と表示されるはずだ。
ここまでは理解できただろうか? 是非上に挙げた例はVBEで実行してみて欲しい。
プログラムの基本要素
ここからは、プログラム言語の基本要素を説明したい思う。実践というより知識になる。
プログラミング言語は、ExcelVBAに限らず、以下のような基本要素を備えていることが多い。
- 変数
- 繰り返し処理
- 条件分岐
- オブジェクト
4つのうち、オブジェクトは割と新しい概念で、色々な機能をパッケージしたようなモノになる。
簡単な説明は第1回目で書いたので、気になる人は参照してみて欲しい。
さて残りの3つ。変数、繰り返し処理、条件分岐を使い方を覚えれば、そのプログラミング言語の使い方を覚えた事になる。だから他のプログラム言語を経験したことがあると、VBAもマスターしやすい。
ただ、ここでは、「ド素人でも学べる」と銘打っているので、これら4つの要素を丁寧に説明していくつもりだ。
まとめ
今回出てきた事をまとめておく。
- 文字列はダブルクォーテーションで囲む
- 文字列を連結する時は & (アンパーサント)を使う
- MsgBox は数値も引数に渡す事ができる
- プログラムの基本要素には変数、繰り返し処理、条件分岐、オブジェクトがある
今回のメインは文字列の使い方を見てきた。
ボリュームは少なめだったが、ちゃんとVBEで実行してみて欲しい。
次回からは、プログラムの基本要素を学んで行く。
コメント