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 )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。