Headline About TechLog Download Java VBA Link


July 2, 2007. Monday.

VBAの構造

このページでは、「VBAで始めてプログラムに触れる」というようなプログラム初心者向けに、あるVBAのプログラムを例にプログラムの構造について説明します。「文法書を読んでも言葉の意味が判らない!」という方はまずここから始めましょう。

ただし、座学って退屈で眠いので、まだVBAを触ったことがない人は、何も考えずにこれをやってみてください。プログラムって習うより慣れろだと思うのです。少なくとも最初のうちは。




VBAの構造

それでは簡単なサンプルプログラムを例にとってVBAの構造について説明します。


'ここから宣言部
Const MyName AS String = "バリスタ" '定数の宣言
Dim weight As Integer        '変数の宣言

'プロシージャ「initWeight」の定義
Sub initWeight()
  weight = 60
End Sub

'プロシージャ「eat」の定義
Sub eat()
  weight = weight + 1
  MsgBox (MyName & "の今の体重は" & weight & "kgです")

  If weight > 70 Then
    MsgBox ("太りすぎ!ちょっと痩せなさい!")
  End IF
End Sub

まずは「宣言部」について説明しましょう。プログラム中では文字列や数値を一時的に格納しておく場所として「変数」を使うことが出きます。「面積 = 2πr」と書くときのrのような物だと思ってください。また、常に固定のままで使う値を「定数」として決めておくことが出来ます。さっきの例で言うとπにあたります。こういった物を使う必要がある場合、「定数」や「変数」を宣言しておきます。上記プログラム中のMyNameやweightがそうですね。MyNameは文字列を格納する定数なのでConst(定数) MyName As(〜として) String(文字列)として宣言しています。一方、weightは体重、つまり数字を格納する変数なので、Dim weight As Integer(整数)として宣言しています。


宣言した変数や定数を使って計算や処理を行ったり、画面を操作したりするのが「プロシージャ」です。プロシージャとはprocedure、つまり「手順」を意味します。SubからEnd Subまでが一つの処理を記述するプロシージャです。VBAではボタンを押した際などにこのプロシージャを呼び出して処理を行います。プロシージャのことを他にも「関数」だとか「メソッド」だとか呼んだりします。混乱を招きやすいですが、baristaも含め、経験の長い人ほど無意識に混在させる傾向にありますので、どれも「何らかの処理のことだな」と思っておいてください。


上記のプログラムは、[初期化]ボタンを押すと、initWeightプロシージャが呼び出され、baristaの体重の初期値を60kgに設定します。[食べる]ボタンを押すと、1kg体重を増やし、増えた後の体重をMsgBoxで表示します。そして、もし体重が70kgを越えた場合には、ダイエットするよう、警告メッセージを表示します。




さて、簡単なプログラムの例を用いてVBAのプログラム構造について説明しましたが、意味はわかったでしょうか?最初は意味がよくわからないかも知れませんが、サンプルを真似て沢山プログラムを作ったり、細かい文法を勉強していくうちにわかってくると思いますので、気にせずに。取り合えず、「何かのきっかけでプロシージャが呼び出され、プロシージャは宣言された変数や定数を使って何かの処理を行う」のだな、とだけ覚えておきましょう。