あなたは、参照することにより、または値により手続き(関数やサブ)に引数を渡すことができます。デフォルトでは、ExcelのVBAは、参照で引数を渡します。いつものように、私たちは、物事をより明確にするために簡単な例を使用します。

ワークシート上のコマンドボタンを配置し、次のコード行を追加します。

Dim x As Integer

x = 10

MsgBox Triple(x)

MsgBox x

コードが機能トリプルを呼び出します。それは我々が機能をモジュールに配置する必要があります。に興味を持っている第二のMsgBoxの結果です。

  1. Visual Basicエディターおよび挿入モジュール]をクリックします。

次のコード行を追加します。2.:

Function Triple(ByRef x As Integer) As Integer

x = x  3

Triple = x

End Function

あなたはシート上のコマンドボタンをクリックすると、結果:

ByRef Result

ByRef Result

ByValのでByRefのを交換して3.。

Function Triple(ByVal x As Integer) As Integer

x = x  3

Triple = x

End Function

あなたはシート上のコマンドボタンをクリックすると、結果:

ByVal Result

ByVal Result

説明:参照で引数を渡すとき、我々は、元の値を参照しています。 X(元の値)の値が関数に変更されます。私たちは関数にコピーを渡している値で引数を渡すときに結果として第二のMsgBoxは、30の値を表示します。元の値は変更されません。その結果、第二のメッセージボックス10(元の値)の値を表示します。