【用語集に記載の内容について】

用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。 また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。

【コードをコピーして実行する場合の注意】

文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。

ByRefキーワード

名称ByRefキーワード
説明
参照渡しを指定します。

プロシージャの引数に、変数そのものを渡す渡し方を参照渡しといいます。

変数を宣言すると、PCのメモリ上にその変数の値を書き込む箱(メモリ上のスペース)が確保されます。

この箱には「住所」(メモリ上の場所)があり、参照渡しでは、この「住所」を渡すので、引数を受け取った呼び出し先のプロシージャで値が書き換えられた場合、呼び出し元の変数の値も書き換えられます。

なお、「Sub Macro2(S As String)」のように、ByVal、ByRefのどちらも指定しなかった場合は、ByRefが指定されたものと見なされます。
書式
Sub マクロ名(ByRef 引数名 As 型)
    処理
End Sub

ByRef:引数を参照渡しで渡すことを指定するキーワード
型:引数のデータ型を指定(例:Integer, String など)
コード例①
Sub Macro1()
    Dim S As String

    S = "東京都"
    Call Macro2(S)
    MsgBox S
End Sub

Sub Macro2(ByRef S As String)
    S = S & "渋谷区"
End Sub

Macro1のCallステートメントでMacro2を呼び出し、引数として変数Sを渡しています。

Macro2はByRefで引数を受け取っているため、Macro2内で引数の値を変更するとMacro1の変数Sの値が変更されます。

Macro1を実行すると、「東京都渋谷区」のメッセージボックスが表示されます。
カテゴリスタンダード