Callによるプロシージャ呼び出し

広告

他のプロシージャを呼び出す場合は、単に呼び出したいプロシージャ名を記述するだけで呼び出す事が出来ます。

Sub テスト()
    Dim sum As Integer
    Dim i As Integer

    sum = 0

    For i = 1 To 10
        sum = sum + i
    Next i

    Range("A1").Value = sum

    otherCellSet
End Sub

Sub otherCellSet()
    Range("A2").Value = Range("A1").Value * 2
    Range("A3").Value = Range("A2").Value * 2
End Sub

この場合、プロシージャ名だけが書かれているのでプロシージャを呼び出しているのかどうか一見すると分かりにくいです。(プロシージャ名を、プロシージャ名であるとはっきり分かるような名前の付け方をしておけばいいかもしれません)。

そこでプロシージャを呼び出す別の方法を見ていきます。具体的には「Call」ステートメントを使って別のプロシージャを呼び出します。

Sub テスト()
    Dim sum As Integer
    Dim i As Integer

    sum = 0

    For i = 1 To 10
        sum = sum + i
    Next i

    Range("A1").Value = sum

    Call otherCellSet
End Sub

Sub otherCellSet()
    Range("A2").Value = Range("A1").Value * 2
    Range("A3").Value = Range("A2").Value * 2
End Sub

「Call」ステートメントの後にプロシージャ名を記述することでプロシージャを呼び出すことができます。わざわざ「Call」を付けるのは無駄なようですけど、別のプロシージャを呼び出していることがはっきりと分かりますので、後でメンテナンスをする場合にプログラムが見やすくなります。出来るだけ分かりやすく記述することが望ましいので、今後は「Call」を使って呼び出すことにします。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)