値渡しの場合は「ByVal」を変数定義の前に使っていましたが、参照渡しの場合は「ByRef」を変数定義の前に付けます。 今まで使っていた値渡しによる方法では、プロシージャを呼び出すときに変数を使って引数を指定した場合、変数にその時点で含まれている値だけがプロシージャに渡されていました。その為、呼び出し先のプロシージャで値を変更しても呼び出し元の方の変数には影響がありませんでした。 Sub テスト() Dim str As String str = "こんにちは" 'この時点では変数strには"こんにちは"が '格納されています Call setCellValue(str) '呼び出しから帰った時点でも変数strには '"こんにちは"が格納されたままです End Sub Sub createString(ByRef str As String) str = "こんばんは" '呼び出されたプロ