マクロのコードを作成に当たり、別のプロシージャを呼び出す方法を紹介します。
コードの可読性の向上やコードの再利用による効率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
上記は一つのモジュール内での表現になっていますが、下図のように他のモジュール内にプロシージャがあっても変数も共有され、呼び出しもできます。
コメント