トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > VBAとの出会い編 第2話「星くん、VBAを学ぶ!」

やってみよう!Excel VBAで業務改善!|VBAとの出会い編

オブジェクトっていったい…

「特にわからなかったところは、どこだい?」 「そうだなあ…特にといえば…やっぱり"オブジェクト"かな。
昨日も説明してもらったけど、いまいちチンプンカンプンだよ」
「オーケイ。じゃあまず、オブジェクトについて説明しようか」

そういって八木くんはExcelを立ち上げました。

「このExcelのワークシートにあるセル、普段、俺たちが文字や数値を入力するところだけど…
これもオブジェクトだよ」
「ええ!?これもオブジェクトなのかい?」 「もちろんさ、オブジェクトじゃなければVBAから操作できないじゃないか。
セルを操作できなかったら、Excel VBAを使う意味なんてないよ。
セルを操作するには"Rangeオブジェクト"というオブジェクトを使うんだ」

八木くんは、VBE(Visual Basic Editor)を立ち上げ、画面の一部を指差しました。

「ここに[Sheet1 (Sheet1)]と書かれたアイコンがあるだろ、とりあえずこれをダブルクリックしてみるよ」 「あ、何か出た」

VBEの画面、右側に真っ白なウィンドウが表示されました。

「今出たのは"コードウィンドウ"といって、VBAのコードを記述するためのウィンドウさ。
星、ここに"Sub TEST"と打ち込んで、[Enter]キーを押してみろよ」

星くんはいわれたとおりに入力し、[Enter]キーを押しました。

「あ、勝手にカッコがついた…。それに書いてもいない行が、勝手に増えてるよ」

「…それでいいんだよ。そういうふうになってるんだ。
この"Sub TEST()"~"End Sub"までが"プロシージャ"といって、プログラムを構成する最小単位になるんだ。
簡単にいえば、これで1つの小さなプログラムになると思っていい。
ここに"MsgBox Range("A1")"と記述して…[F5]キーを押すと」

「あ!また何か出た!…何も書かれていないメッセージが出たよ?」

「うん。"MsgBox"というのはMsgBox関数といって、メッセージを表示させるための関数さ。
"Range("A1")"は、さっきいったRangeオブジェクトで、ここではA1のセルを指してるんだ。
A1のセルには今、何が入っている?」
「A1のセルには…何も入力されてないよ」 「じゃあ、ここに"星くんはVBA初心者です"って入力してみろよ」

星くんがちょっとイヤそうな顔をしながら、セルに文章を入力します。

「もう一度、さっきのプロシージャを実行するよ。
あ、[F5]キーは、プロシージャを実行させるためのショートカットキーなんだ。
押すとカーソルのある場所のプロシージャを実行してくれる。覚えておくと便利だぜ」

そういって八木くんは[F5]キーを押し、プロシージャを再び実行しました。

シーズン1 「VBAとの出会い」編: 各エピソードへのリンク
一覧にもどる