memorandumsスマートフォン用の表示で見るmemorandums日々の作業ログです。VBAの関数の引数渡しのデフォルトはByRefです>自分2010-01-06VBAの関数の引数渡しのデフォルトはByRefです>自分VBAVBAでExcelのワークシート中のデータをCSVファイルに書き出すプログラムを作っていたときのことです。ファイル名とシート名をある関数に渡してCSVを読み書きできるような関数を作りました。概略は以下のような感じです。Subで、ファイル名とシート名を一緒にすることが多いので、何気なく以下のようなユーティリティ関数を追加しました(VBAでは可変引数をサポートしていない;いろいろと工夫すればできるようですが。Subで、動かしてみると実行エラーが。調べてみるとfunc関数でarg1とarg2の値が同じになっています。バッファーオーバー?とも考えましたが、よくよくコードを見ると、func関数の中でarg1の値を書き換えていました(昔の癖で普段は関数内で仮引数に代入するようなプログラムは書かないのですが横着しました。