【用語集に記載の内容について】
用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。
また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。
【コードをコピーして実行する場合の注意】
文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。
ByValキーワード
名称 | ByValキーワード |
---|---|
説明 | 値渡しを指定します。 プロシージャの引数に、変数の値だけを渡す渡し方を値渡しといいます。 変数を宣言すると、PCのメモリ上にその変数の値を書き込む箱(メモリ上のスペース)が確保されます。 値渡しでは、この箱の「中身」(値)をコピーし、呼び出し先のプロシージャに渡します。 このとき、元の変数とは別の「箱」が作られるため、引数を受け取った呼び出し先のプロシージャで値が書き換えられても、呼び出し元の変数は影響を受けません。 つまり、呼び出し元の変数と呼び出し先の引数は同じ名前であっても、完全に別々の箱を使っているため、別のものです。 |
書式 |
Sub マクロ名(ByVal 引数名 As 型) 処理 End Sub ByVal:引数を値渡しで渡すことを指定するキーワード 型:引数のデータ型を指定(例:Integer, String など) |
コード例① |
Sub Macro1() Dim S As String S = "東京都" Call Macro2(S) MsgBox S End Sub Sub Macro2(ByVal S As String) S = S & "渋谷区" End Sub Macro1のCallステートメントでMacro2を呼び出し、引数として変数Sを渡しています。 Macro2はByValで引数を受け取っているため、Macro2内で引数の値を変更しても、Macro1の変数Sの値は変更されません。 Macro1を実行すると、「東京都」のメッセージボックスが表示されます。 |
カテゴリ | スタンダード |