3)モジュールとプロシジャー

目次

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行の途中で改行

一つの連続した文を改行して表示したい場合は、「_」アンダーバーを入れます

よかったらシェアしてね!
目次