【VBA】基本(用語とルール)

Excel・VBA

VBAの基本事項を簡単にまとめたので紹介します。

VBAに関わる用語

各用語について大まかな説明をします。

標準モジュール

VBAプログラムを記述する場所のこと。複数のSubプロシージャを保存できる。

プロシージャ

色々な複数の処理を一つの単位にまとめたもの。呼び出して実行することで一連の処理が行われる。

Subプロシージャ

呼び出して実行すると一連の処理が行われるが、基本的には呼び出し元へ処理結果の値を渡すことはできない。

Sub で始まり、End Subで終わる。この間に書かれた一連の処理を実行する。

Functionプロシージャ

呼び出して実行すると一連の処理が行われ、呼び出し元に処理結果の値を返すことができる

関数と同じように使用することができるため、ユーザーが自作の関数を作成するときに使用する。Function で始まりEnd Functionで終わる。

ステートメント

プログラムの構成単位。プロシージャで実行する個別の処理のこと 。例えば、プロシージャ内に①値を記入する。②文字の色を変更する。③文字の大きさを変更する。といった処理が書かれていた場合、これら3つがそれぞれステートメントにあたる。

標準モジュール・Subプロシージャ・ステートメントの関係

オブジェクト

操作対象「物」のこと。セルやワークシートなどが該当する。

プロパティ

操作対象「物」の特性のこと。セルの色・値・文字などが該当する。

メソッド

操作対象「物」に行う操作のこと。コピーしたり、切り取ったりする操作のこと。

変数

「値」を保存しておく入れ物。値の特性によって色々な種類がある。

プログラムの書き方のルール

ここではSubプロシージャについて、プログラムを作成する際のルールを説明します。基本的なルールは次の通りです。

  • コード(プログラム)は標準モジュールに記入する。
  • Subプロシージャは、Sub プロシージャ名()で始め、End Subで終了する。
  • 変数を使用する場合は、使用前に宣言(定義)する。

まず、Subプロシージャの作成にあたっては 【VBA】導入方法 で紹介した方法で標準モジュールを作成します。

次に作成した標準モジュールへSubプロシージャの形式に従いプログラムを記入します。

【Subプロシージャ】
 Sub プロシージャ名()
  処理内容
 End Sub

Subの後は半角スペースを空けて、プロシージャ名を記入します。また、プロシージャ名の後は半角のカッコ()を付けます。

プロシージャ名の命名規則

プロシージャ名を記入するうえで、従う規則は次の通りです。

  • 文字で始まっていること。
  • 文字 (英数字、漢字、ひらがな、カタカナ) とアンダスコア (_)  を使用可能。
  • スペースや記号 (&、*、@、.(ピリオド) )は使用できない。
  • 255文字(半角の場合)以下であること
  • プログラムで予約されている識別子またはキーワード(VBAで予め決められている名称) は使用できない。
  • 一つのモジュール内に同じ名前は使用できない

変数の宣言

変数をSubプロシージャ内で使用する場合は、使用する前に適切なデータ型を宣言しておく必要があります。この時、変数を宣言する場所について大きく次の二つの候補があります

  • プログラムの最初にすべての変数を定義する。
  • 変数を使用する直前に定義する。

プログラムの最初に変数を定義した場合は、使用している変数を把握しやすいメリットの反面、プログラムを修正し必要がなくなった際に宣言部分の削除を忘れやすいといったデメリットがあります。

一方で、変数を使用する直前に定義する場合は、プログラムの修正時に必要なくなった際に消し忘れの可能性が低くなる反面、全体でどのような変数を使用しているか把握しにくいといったデメリットがあります。

どちらを選ぶかは、個人の好みでよいかと思います。後から読んでもわかりやすいプログラムの作成を心掛けましょう。

コメント

タイトルとURLをコピーしました