ExcelVBAをほぼ2年間勉強することで、当初ある程度解決したいと思っていた課題は解決できました。しかし、いまだにExcelVBAの本やネット記事を調べるときに、使い慣れない用語が多いので、改めて用語の整理をする時間を取りたいと考えていました。たとえば、プロシージャやモジュール、プロパティ、オブジェクト、メソッドなどは、あまりピンときません。例題をみて何となくこうしたいときにはこんな表記になるくらいで理解しています。ここでは、これらの用語を改めて整理してみます。
プロシージャとステートメント
プロシージャはプログラムですよね。また、プログラム内のひとつひとつの行のことをステートメントと呼ばれます。
プロシージャにはSubプロシージャとFunctionプロシージャがあります。SubプロシージャはSubとEnd subの間にステートメントを書いていきますが、各プロシージャから他のプロシージャをCallで呼び出すことが出来ます。つまり、Subプロシージャをサブルーチンとして利用できますが、FORTRANのようにSUBROUTINEとして区別することはありません。
Functionプロシージャは、FunctionとEnd Functionの間にステートメントを書いていきますが、独自の関数を定義するようなもので、Functionの後に定義したFunction名をそのまま関数として使用します。
下記にプロシージャの例題を示しますが、Function名 Log10(x)を実数 x の常用対数を計算するものと定義しており、プロシージャ上でLog10( )を関数として利用しています。
Option Explicit Dim T As Double, LG As Double Sub メインプログラム() T = Range("C2").Value LG = Log10(T) '← Functionで”Log10()”を定義 Call 書き出し '← サブルーチンの計算を実行 End Sub '=== 常用対数計算 === Function Log10(x) As Double Log10 = Log(x) / Log(10#) End Function '=== サブルーチン === Sub 書き出し() Range("B3") = "Log10=" Range("C3").NumberFormat = "0.0000" Range("C3") = LG End Sub
モジュールとは
Excel VBAでは、プロシージャをモジュール内に書きます。下記の図は鋼管杭の断面諸元計算を作成した際の例ですが、Excel上の画面で”開発”⇒”Visual Basic”をクリックすると、VBAプロジェクト画面が現れます。一般的な計算等の処理のプロシージャは標準モジュールに書きます。他にMicrosoft Excel Objectsの中にSheet1やThisWorkbookがありますが、シートやワークブックの操作に伴って実行させるモジュールです。またフォームモジュールの中にはユーザフォームを実行させる際のプロシージャが書かれています。
オブジェクトとプロパティ
セル、ワークシート、ブック等の操作する対象のことをオブジェクトと言います。ちなみにオブジェクトを複数指定したものをコレクションといいます。これらオブジェクトの色や場所、書式などの特徴のことはプロパティと呼ばれています。たとえば、下の例ではセルA4のformatを小数点2桁の実数に設定しています。このように、Excel VBAでは、ワークシートやセル、ブックに対して、その色や場所、名前、書式などを設定していきます。
メソッドとは
メソッドとは、オブジェクトに対して実施する操作です。下の例ではワークブックを追加する操作を行っています。他に、セルの値をクリアしたり、指定したセル範囲からデータを抽出したり、セルやワークシートのコピー、名前の変更、ファイルの削除など、多くのメソッドが用意されています。
以上、Excel VBAの基本的な用語を紹介しました。参考になれば幸いです。
コメント