VB/VBA で Call キーワードを使うべきでしょうか? 質問する

VB/VBA で Call キーワードを使うべきでしょうか? 質問する

VB/VBA でサブを呼び出すときにキーワードを使用しますCall。オプションであることはわかっていますが、使用する方がよいのでしょうか、それとも省略する方がよいのでしょうか。私は常にそれがより明示的であると思っていましたが、おそらくそれは単なるノイズです。

また、別のフォーラムでこれを読みました:Callキーワードを使用すると、値が返されないことがわかっているため、戻り値のためのスペースを確保するためにスタックスペースを設定する必要がないため、高速になります。

ベストアンサー1

ああ、私は長い間これについて疑問に思っていましたが、VBAに関する2インチの厚さの本を読んでも、基本的に、探すVBE の機能を使用すると、大規模なプロジェクトで簡単に呼び出しを見つけることができます。

しかし、私は別の用途を見つけました。

コロン文字を使用してコード行を連結できることはわかっています。次に例を示します。

Function Test(mode as Boolean) 
    if mode = True then x = x + 1 : Exit Sub
    y = y - 1
End Sub

しかし、行の先頭でプロシージャ呼び出しを使用してこれを行うと、VBE はラベルを参照していると想定し、インデントを削除して、行を左余白に揃えます (プロシージャが意図したとおりに呼び出されている場合でも)。

Function Test()
Function1 : Function2
End Function

使用方法電話ステートメントを使用すると、コードのインデントを維持しながらプロシージャ呼び出しを連結できます。

Function Test()
    Call Function1 : Call Function2
End Function

使用しない場合は電話上記の例のステートメントでは、VBE は「Function1」がラベルであると想定し、エラーが発生しなくてもコード ウィンドウ内で左揃えにします。

おすすめ記事