オデッセイの運営サイト一覧

Excel®️、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

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

第2話「星くん、VBAを学ぶ!」

第2話「星くん、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との出会い」編:エピソード一覧

一覧へ戻る

MENU