PR
マクロの実行

【Excel VBA】マクロ実行時に別のプロシージャを呼び出す

マクロのコードを作成に当たり、別のプロシージャを呼び出す方法を紹介します。
コードの可読性の向上やコードの再利用による効率Up等が期待されます。

今回の事例はA1セルとA2セルの合計をA3セルに出力するという簡単な処理です。

今回、この簡単な処理を以下の3つのプロシージャに分解して表現する場合を紹介します。
「メインプロシージャ」
「A1セルとA2セルの値を変数iとjにそれぞれ代入する」
「iとjの値を合計する」

なお、この事例において、変数に代入された値を他のプロシージャと共有する必要があるため、変数の定義をグローバル変数として定義する必要があります。

以下のコードについて、「他のプロシージャを引用する」を実行すると、
「二つのセルの値を取得する」プロシージャを呼び出し、
「二つのセルを合計する」プロシージャを呼び出します。

Option Explicit

'グローバル変数の宣言
Public i, j As Integer

Sub 他のプロシージャを引用する()

  Call 二つのセルの値を取得する
  Call 二つのセルを合計する

End Sub

Sub 二つのセルの値を取得する()
 
 i = Range("A1").Value
 j = Range("A2").Value
 
End Sub

Sub 二つのセルを合計する()

 Range("A3").Value = i + j

End Sub

上記は一つのモジュール内での表現になっていますが、下図のように他のモジュール内にプロシージャがあっても変数も共有され、呼び出しもできます。

コメント