3)モジュールとプロシジャー
3-1)モジュールとは
VBA(Visual Basic for Applications)モジュールは、Microsoft Office製品(例えば、Excel、Word、Accessなど)において、マクロやカスタム機能を作成するためのコードを含むコンポーネントです。
3-1)モジュールの種類
VBAモジュールには主に3つの種類があります:
標準モジュール
全てのVBAプロジェクトで使用される一般的なモジュールです。ここにはグローバルにアクセス可能なプロシージャや関数を格納します。
クラスモジュール
オブジェクト指向プログラミングをサポートするためのモジュールで、プロパティ、メソッド、イベントを持つオブジェクトを作成できます。
オブジェクトモジュール
特定のオブジェクト(例えば、Excelのワークシートやワークブック)に関連付けられたモジュールで、そのオブジェクトに対するイベントハンドラーを含みます。
フォームモジュール
ユーザーフォームに関連付けられるモジュールです。
フォームそのものやフォームに配置されたコントーロールオブジェクトのイベントハンドラを含みます
シートモジュール
シートに関連付けられるモジュールです。
セルの変更等のイベントハンドラを含みます
ブックモジュール
Excel Boo全体に割り付けられるモジュールです
Bookの起動やシートの切り替え等のイベントハンドラを含みます。
![](https://lifeanddigital.net/wp-content/uploads/2024/06/60275ab58ebd7cd921d15fb49998721b-2-1024x576.jpg)
3-1-1)モジュールを挿入する・削除する
モジュールの挿入
1.新規ブックを開く
2.VBEを起動(ALT+F11)
3.VBEの挿入→標準モジュール
4.プロジェクトエクスプローラーで標準モジュールを選択
5.プロパティウインドウの「オブジェクト名」を編集
モジュールの削除
プロジェクトエクスプローラーで削除したいモジュールを選択
表示されるメニューから「Moduleの解放」をクリック
表示されるダイアログボックスで「いいえ」をクリック
![](https://lifeanddigital.net/wp-content/uploads/2024/06/c64c5ece666a6407486987541305a212-2-1024x576.jpg)
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」キーを押します
![](https://lifeanddigital.net/wp-content/uploads/2024/06/fd40f9f7f385df78f8ba2cf60ad8cbff-3-1024x576.jpg)
3-2-2)WBEからの起動 2
SUB マクロ名()と END SUB の間 以外 にカーソルを置いて、 VBEのツールバーの「実行」→「Sub/フォームの実行」をクリックするか、F5キーを押すと、「マクロ」ダイアログボックスが開きます。「マクロ」ダイアログボックスの「実行」を押すと実行されます
![](https://lifeanddigital.net/wp-content/uploads/2024/06/c9552d0133d0f4a2a4f77168fb145539-1-1024x576.jpg)
3-2-2)実行エラーの場合
エラーの場合はダイアログボックスが開きます、ダイアログボックスは2種類あります
コンパイルエラーのダイアログボックスが表示された時は「OK」ボタンをクリックします
実行エラーのダイアログボックスの時は、。終了ボタンを押すとマクロは終了します
![](https://lifeanddigital.net/wp-content/uploads/2024/06/55c8bf14835ebb73a274740f021f5807-2-1024x576.jpg)
3-2-2)デバックモード
![](https://lifeanddigital.net/wp-content/uploads/2024/06/285ad5b6b50d16ac0d0bca67c9e8953a-1-1024x576.jpg)
3-2-2)実行をリセットする場合
デバックモードの終了は、ツールバーの「リセット」ボタンを押すか
「実行」→「リセット」をクリックします。
![](https://lifeanddigital.net/wp-content/uploads/2024/06/7a0dcd13f8d3251d5a149a1255ac7996-1024x576.jpg)
3-2-3)他のプロシジャーを呼び出す
プロシジャーの呼び出しはCALLステートメントを使用します。
CALL ステートメントで呼び出しされた、プロシジャーが実行され、実行が終わると、CALL ステートメントの次の行から実行されます
![](https://lifeanddigital.net/wp-content/uploads/2024/06/45e645353c52af061f80af60f346190d-1-1024x576.jpg)
3-2-3)他のプロシジャーの使い方
同じ処理をまとめる事でプログラミンが簡素になります。
![](https://lifeanddigital.net/wp-content/uploads/2024/06/180801fa1135fb2f9b1d3ae25cb678f0-1-1024x576.jpg)
3-2-3)デバック中に別のサブプロシジャーを呼び出す
デバック中に、プロシジャーにカーソルを合わせて Shift + F2を押すと、そのプロシジャーにカーソルが移動します
![](https://lifeanddigital.net/wp-content/uploads/2024/06/24faa776559c2a19be903453b613f526-1024x576.jpg)
3-2-4)コメント
コメントは、REM ステートメント 又は 「’」シングルコーテーションの後ろに記述します
- プロシシャーの中(Sub end Sub の間)
- プロシシャーの前(Sub の前)
- プロシシャーの前(End Sub の後ろ)
- 文の後(「’」のみ)
'コメント Sub Macro2() Rem コメント ' コメント Call Macro3 ' コメント End Sub 'コメント
![](https://lifeanddigital.net/wp-content/uploads/2024/06/91e7a8680d4008faa58b774259817fe6-1024x576.jpg)
3-2-4)コメントの色変更
コメントの色変更
ツール→オプション→エディターの設定→コメント
![](https://lifeanddigital.net/wp-content/uploads/2024/06/3265133c13d3b0b9fb53d46133fc3b7b-1024x576.jpg)
3-3-4)コメントブロック
ツールバーで右クリック→メニューから「編集」
「編集」ツールバーの「コメントブロック」
![](https://lifeanddigital.net/wp-content/uploads/2024/06/508c1cbe28de2cfa3f15dd6ed1747c2b-1024x576.jpg)
3-3-5)1行の途中で改行
一つの連続した文を改行して表示したい場合は、「_」アンダーバーを入れます
![](https://lifeanddigital.net/wp-content/uploads/2024/06/84cf2338df598a65f7626d84e74cce87-3-1024x576.jpg)