'セルを引数に持つプロシージャ Sub 呼出テスト(引数 As Range) End Sub
プロシージャの呼び出しにはCallステートメントを使用します
この時に引数付きのプロシージャを実行する事ができます
その際には呼び出し先のプロシージャで引数の設定を行う必要があります
関数と同様にプロシージャ名の隣の「()」の中に指定を行います
通常引数の無い場合は、空白状態になっています
ここは引数を設定するための場所になります
引数は、変数と同じものを指定します
書き方も変数の宣言と同じものになります
実際の処理の動き
Sub 処理テスト() Call 呼出テスト(Range("A1")) Call 呼出テスト(Range("A1:A10")) End Sub Sub 呼出テスト(引数 As Range) Debug.Print 引数.Address End Sub
処理の動きの確認には以上のコードを使用します
画像の動きの確認をしてください
Call 呼出テスト(Range("A1")) Call 呼出テスト(Range("A1:A10"))
Callステートメントで2回処理を呼び出しています
その際に、引数としてセルを指定しています
指定方法はプロシージャ名の後に「()」を指定して、中に引数に設定するものを記載します
Sub 呼出テスト(引数 As Range) Debug.Print 引数.Address End Sub
呼び出し先の処理では、引数は「(引数 As Range)」として指定されています
ここに呼び出し時に指定するセルを代入することができます
代入されたものは通常の変数と同じ使い方になるので、Addressプロパティでセルアドレスを取得することが出来ます
Callステートメントにより同様の処理をまとめることが出来ますが、こうして対象が違っていてまとめることが出来ない場合に使用できます
なお、この引数付きのプロシージャからデバッグモードに入ることはできません
なので動作確認を行いたい場合は、呼び出し元のプロシージャから実行することでデバッグモードを行うことが可能になります
また、ここではSubプロシージャで行っていますが、Functionプロシージャでも全く同様に使用できます