3)モジュールとプロシジャー
3-1)モジュールとは
VBA(Visual Basic for Applications)モジュールは、Microsoft Office製品(例えば、Excel、Word、Accessなど)において、マクロやカスタム機能を作成するためのコードを含むコンポーネントです。
3-1)モジュールの種類
VBAモジュールには主に3つの種類があります:
標準モジュール
全てのVBAプロジェクトで使用される一般的なモジュールです。ここにはグローバルにアクセス可能なプロシージャや関数を格納します。
クラスモジュール
オブジェクト指向プログラミングをサポートするためのモジュールで、プロパティ、メソッド、イベントを持つオブジェクトを作成できます。
オブジェクトモジュール
特定のオブジェクト(例えば、Excelのワークシートやワークブック)に関連付けられたモジュールで、そのオブジェクトに対するイベントハンドラーを含みます。
フォームモジュール
ユーザーフォームに関連付けられるモジュールです。
フォームそのものやフォームに配置されたコントーロールオブジェクトのイベントハンドラを含みます
シートモジュール
シートに関連付けられるモジュールです。
セルの変更等のイベントハンドラを含みます
ブックモジュール
Excel Boo全体に割り付けられるモジュールです
Bookの起動やシートの切り替え等のイベントハンドラを含みます。
3-1-1)モジュールを挿入する・削除する
モジュールの挿入
1.新規ブックを開く
2.VBEを起動(ALT+F11)
3.VBEの挿入→標準モジュール
4.プロジェクトエクスプローラーで標準モジュールを選択
5.プロパティウインドウの「オブジェクト名」を編集
モジュールの削除
プロジェクトエクスプローラーで削除したいモジュールを選択
表示されるメニューから「Moduleの解放」をクリック
表示されるダイアログボックスで「いいえ」をクリック
3-2)プロシージャーとは
VBA(Visual Basic for Applications)のプロシジャーは、特定のタスクを実行するために一連のステートメントをグループ化したものです。
プロシジャーは、コードの再利用性を高め、読みやすさとメンテナンス性を向上させるために使われます。
プロシジャーはモジュールに記述します。
マクロの最小実行単位をサブプロシジャーといいます。
VBAのプロシジャーには、
「サブ(sub)プロシジャー」
「ファンクション(Function)プロシジャー」
「プロパティ(Property)プロシジャー」
3種類があります。
3-2-1)サブプロシジャー
マクロの最小実行単位をサブプロシジャーといいます。
サブプロシジャーは、マクロ実行時、又は、他のプロシジャーから CALL ステートメントで呼び出された時に実行されます
サブプロシジャーの例
Sub Macro1()
End Sub
3-2-1)関数プロシジャー
関数プロシジャーは、関数名が値を持ちます(戻り値)。
エクセルの関数として呼び出されるか。他のプロシジャーからステートメントとして呼び出されます。
関数プロシジャーの例
Function func1( s as String)
func1 = S + 1
End Function
関数を呼び出すサブプロシジャーの例
Sub Macro1()
a = func1( 1 )
End Sub
3-2-1)プロパティプロシジャー
Property キーワードで始まり、オブジェクト指向プログラミングで使用されます。
オブジェクトモジュールで使用され、オブジェクトのメンバー変数に数値を与えたり、メンバー変数の値を返すプロシージャです。
Public Property Set MySheet(argSheet As Worksheet)
Set pSheet = argSheet
End Property
'
Public Property Get MySheet() As Worksheet
End Property
Public Property Let Name(ByVal argName As String)
End Property
3-2-1)プロシジャーを記述する
サブプロシジャーの記述
Sub プロシジャー名() (改行)で始まり。end SUB で終わります。 Sub プロシジャー名、まで入力して(Enter) キーを押すと ()が自動的に挿入され「End Sub」が自動的に挿入されます。
関数プロシジャーの記述
Function プロシジャー名、まで入力して(Enter) キーを押すと ()が自動的に挿入され「End Function」が自動的に挿入されます。
プロパティプロシジャーの記述
プロパティプロシジャーは、クラスモジュールに記述します Property プロシジャー名、まで入力して(Enter) キーを押すと ()が自動的に挿入され「End Property」 が自動的に挿入されます。
3-2-2)プロシジャーを実行する
プロシジャーを実行する時は。実行したいプロシジャーのSUB マクロ名()と END SUB の間にカーソルを置いて、VBEのツールバーの「実行」→「Sub/フォームの実行」をクリックいます。
シュートカットキー「F5」キーを押します
3-2-2)WBEからの起動 2
SUB マクロ名()と END SUB の間 以外 にカーソルを置いて、 VBEのツールバーの「実行」→「Sub/フォームの実行」をクリックするか、F5キーを押すと、「マクロ」ダイアログボックスが開きます。「マクロ」ダイアログボックスの「実行」を押すと実行されます
3-2-2)実行エラーの場合
エラーの場合はダイアログボックスが開きます、ダイアログボックスは2種類あります
コンパイルエラーのダイアログボックスが表示された時は「OK」ボタンをクリックします
実行エラーのダイアログボックスの時は、。終了ボタンを押すとマクロは終了します
3-2-2)デバックモード
3-2-2)実行をリセットする場合
デバックモードの終了は、ツールバーの「リセット」ボタンを押すか
「実行」→「リセット」をクリックします。
3-2-3)他のプロシジャーを呼び出す
プロシジャーの呼び出しはCALLステートメントを使用します。
CALL ステートメントで呼び出しされた、プロシジャーが実行され、実行が終わると、CALL ステートメントの次の行から実行されます
3-2-3)他のプロシジャーの使い方
同じ処理をまとめる事でプログラミンが簡素になります。
3-2-3)デバック中に別のサブプロシジャーを呼び出す
デバック中に、プロシジャーにカーソルを合わせて Shift + F2を押すと、そのプロシジャーにカーソルが移動します
3-2-4)コメント
コメントは、REM ステートメント 又は 「’」シングルコーテーションの後ろに記述します
- プロシシャーの中(Sub end Sub の間)
- プロシシャーの前(Sub の前)
- プロシシャーの前(End Sub の後ろ)
- 文の後(「’」のみ)
'コメント Sub Macro2() Rem コメント ' コメント Call Macro3 ' コメント End Sub 'コメント
3-2-4)コメントの色変更
コメントの色変更
ツール→オプション→エディターの設定→コメント
3-3-4)コメントブロック
ツールバーで右クリック→メニューから「編集」
「編集」ツールバーの「コメントブロック」
3-3-5)1行の途中で改行
一つの連続した文を改行して表示したい場合は、「_」アンダーバーを入れます