「なんだ、星。おまえVBAに興味があるのか?」
「う、うん…会社でいろいろ…あってね…。VBAってマスターするのに時間がかかるのかな…」
「…しっかりマスターしようと思えばそれなりに時間はかかるよ。
でも仕事を便利にしたいくらいなら、そんなに大変でもないかな…ちなみにVBAのことについてどのくらい知ってるの?」
「…まるっきり…シロートかな…」
星くんは頭をかきながら、照れたように答えました。でも八木くんは笑っていません。
「VBAっていうのは"Visual Basic for Applications"の略で、
アプリケーションの処理を自動化させるために用意されたマクロ機能で使用する言語なんだ」
「あ、マクロっていうのは聞いたことがある。あれもVBAの一種かい?」
八木くんは、フーッとため息をつきながら答えます。
「なんだ、そんなこともわかってないのか。本当にシロートなんだな…。いいかい、
マクロというのはMicrosoft Officeのアプリケーションを自動化させるために用意された機能なんだ。
VBAはそのマクロの動作を設定するために必要な開発言語(プログラミング言語)だよ。
ちなみにVBAは、VB(Visual Basic)の流れをくむ由緒正しい開発言語なんだぜ」
ホーッと星くんはうなずきます。もう彼も笑っていません。それどころか、顔にどんどん真剣さが増していきます。
「たのむ、八木! おれにVBAを教えてくれ!」
パンと手を合わせ、星くんはお願いしました。
「…いいよ、そんなことしなくても教えてやるよ。でもそれなりに勉強は必要だぜ。大丈夫かい?」
「もちろん!やさしく、イロハから教えてくれるんだろ?」
星くんは上目づかいに、八木くんを見上げます。
「いいかい。開発言語っていうのは言葉なんだから当然、"文法"があるんだ」
「文法って、英語の"S+V+O"とか、"S+V+C"ってやつかい…?」
「あはは、まあちょっと似てるけどね…VBAの文法は大きく分けて次の3つしかないんだ」
八木くんは、コンピュータに向かってカタカタと何か打ち込みます。
「オブジェクト?聞きなれない言葉だなあ。あと関数っていうのはワークシート関数のことかい?」
「“オブジェクト”というのは難しくいうと、VBAにおいて操作の対象となるアプリケーションを構成する要素全般を指すんだけど、簡単にいっちゃえばユーザーフォーム、あれもオブジェクトだよ。
操作というのは、ユーザーフォームにどんな変更を加えるか(プロパティの操作)、どのタイミングでユーザーフォームを表示したり閉じたりするか(メソッドの操作)をプログラミングすることを指すんだ」
「なるほど…それが1つめの文法なんだね。制御構文っていうのは?」
「こんな条件のときにこの処理をしたい(分岐処理)とか、この処理を指定した回数繰り返したい(繰り返し処理)とか、そういったことがプログラミングの世界ではよくあるんだ。
そんな時に必要になるのが、この"制御構文"ってやつさ。
Ifステートメントとか、For...Nextステートメントとか…、他にもいろいろあるよ」
「Ifならワークシート関数にもあるよ」
「うん。ワークシート関数のIf関数とよく似ているよ。 でも、もっと複雑な条件判定もできちゃうんだ。
そして最後の"関数"、これは元になるデータ(引数)を渡してやると、勝手に計算して結果のデータ(戻り値)を返してくれる。 これも基本的にはワークシート関数によく似てるんだけど、書き方や種類がチト違うかな…」