1. VBAの基礎

1-1.VBAとは?

1-2.VBEとは?
 <VBEの起動方法>
 <コードウィンドウの表示方法>

1-3.プロジェクトやモジュールとは?
 <VBAProject>
 <モジュール>
 <プロシージャ>

1-4.VBAファイルの保存について

1-1.VBAとは?

VBAは、エクセルやパワーポイント、ワードなどのOfficeソフトで利用できるプログラミング言語で、Visual Basic for Applicationの略です。

マクロと呼ばれることもありますが、
 ・VBAは、プログラミング言語
 ・マクロは、処理を実行する機能の総称
 といった違いがあり、マクロを実行する方法の1つがVBAといった関係になります。

VBAを使用することで、単調な作業を自動化したり、独自の関数や機能を追加することで、作業の効率化を図ることができます。

例えば、

形式的な作業
・エクセルのデータを、よく使うレイアウトで集計したい、よく使う書式を反映したい
・複数の画像をパワポの決まった位置に一括で貼り付けたい

○繰り返し処理
・複数のブックを開いて、同じ様式で集計したい
・1つのシートで作成したグラフを、他のシートでも作成したい

○Officeソフト同士の連携
・エクセルで作成したグラフを、パワポに貼り付ける
・パワポで作成した図を、ワードに貼り付ける

 といった作業を自動化することができます。

1-2.VBEとは?

VBAを使用するためには、プログラミングコードを記述する必要があります。
そのプログラミングコードを記述する場所が、VBE(Visual Basic Editor)です。
厳密には、VBEの中の「コードウィンドウ」欄にコードを記述します。

図 VBE画面

<VBEの起動方法>
VBEの起動方法は、エクセル、パワーポイント、ワードで、基本的には同じです。
以下では、エクセルを例に、起動の手順をご紹介します。

まず、エクセルのタブ欄(ホームや挿入などがある場所)に、「開発」タブがあるか確認しましょう。
 ない場合は、以下の手順①から
 ある場合は、以下の手順⑦から 進めてください

 ちなみに、VBEの起動は、ショートカットキー Alt + F11 でもできます。

図 VBEの起動手順1
図 VBEの起動手順2
図 VBEの起動手順3
図 VBEの起動手順4

以上の手順でVBEを起動することができます。

図 VBE画面

ただし、初めてVBEを起動した場合は、コードウィンドウは表示されません。
コードウィンドウの表示は以下の手順で行います。

<コードウィンドウの表示方法>

図 コードウィンドウの表示手順1
図 コードウィンドウの表示手順2

1-3.プロジェクトやモジュールとは?

コードウィンドウの表示の途中で、VBAProjectや標準モジュールといった言葉が出てきました。
ここでは、プロジェクトやモジュール、プロシージャについて、簡単に説明します。
プロジェクト、モジュール、プロシージャの関係性は下図の通りになります。

<VBAProject>
1つのブック(ファイル)に1つのProjectとなっており、ブックの構成(シート構成など)や、VBAの構成(モジュール構成など)といった情報が管理されています。

VBEのプロジェクトエクスプロ―ラー内を見ると、VBAProjectの名前がVBAProject(ブック名)となっています。コードウィンドウを開く際は、処理したいブックのVBAProject内でコードウィンドウを作成しましょう。

<モジュール>
コードを管理する場所で、1つのモジュールに複数のプログラムをまとめておくことができます。

モジュールには複数の種類がありますが、基本的に使うのは「標準モジュール」です。
・標準モジュール  :プログラムコードを記述する際に使用するモジュール
・ユーザーフォーム :独自にボタンなどのインターフェースを作成できる
・クラスモジュール :独自のオブジェクト(クラス)を作成する際に使用するモジュール
・ブックモジュール :ブック関連のイベントプロシージャを作成するモジュール
・シートモジュール :シート関連のイベントプロシージャを作成するモジュール
ややこしいですが、とりあえず「標準モジュール」を使っておけば、通常のVBAはできるというイメージです。

<プロシージャ>
1つの処理のまとまりのことをプロシージャといいます。
プログラムの実行=1つのプロシージャの実行 といったイメージで、実行するプロシージャ内に記述されたコードに従い、処理が実行されます。

なお、プログラムの実行は、
 ・手動(ボタンをクリック)
 ・実行中のプロシージャから、別のプロシージャを実行
 ・特定の時間になったら実行
 ・イベント発生時に実行(ブックを開いたとき、セルを編集したとき など)
などがあります。

プロシージャには、以下の3種類があります。
・Subプロシージャ :基本のプロシージャ、とりあえずはこれで良い
・Functionプロシージャ :処理後に戻り値を返す
 処理後に戻り値が欲しい場合はFunction、戻り値がいらない場合はSub、という使い分けです。
・イベントプロシージャ :イベント発生時にプログラムを実行する
 例えば、ブックを開くときにプログラムを実行したい場合、イベントプロシージャを使います。

プロシージャの使い分けは、コードの最初と最後の記述の仕方で行います。(下図参照)
・Subプロシージャ:Sub で始まり、End Subで終わる
・Functionプロシージャ:Function で始まり、End Functionで終わる

図 プロシージャの使い分け

例えば、「A1セルを選択する」プログラムを作成したい場合は、
Subプロシージャに「A1を選択する」コードを記述します。(下図参照)


なお、イベントプロシージャは、SubやFunctionと違った記述になるので、またの機会に。

ここまでモジュールやプロシージャを説明しましたが、簡単にまとめると、
1つのプロシージャが1つのプログラム、プロシージャを複数まとめたものがモジュール、ブック内の全モジュールやシート情報などを管理するのがVBAProjectになります。

1-4.VBAファイルの保存について

VBAを作成したブックを保存するときのファイル形式は、「マクロ有効ブック」(.xlsm)で保存する必要があります。
マクロ有効ブック以外の形式で保存した場合、次にファイルを開いたときに、作成したプログラムがすべて無くなってしまうので、注意しましょう。

コメント