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

Excel VBA で Call を使ってプロシージャを呼び出す方法とメリットについて解説します。

(Last modified: )

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 で Call を使ってプロシージャを呼び出す方法とメリットについて解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。