pickup

 

目次

参照渡し、値渡し

こんにちは。伊川(@naonaoke)です。

今回は、上の記事の続きになります。

参照渡し、値渡しになります。

NETで検索すると、結構な数がヒットしますが、イマイチ理解できません。

私も、すぐにサンプルファイルを作成できるわけでもありません。

私なりの言葉で説明したいと思います。

問題提起

(株)IKAWAの柄久 瀬瑠子(エク セルコ)は上司から、相談を受けました。

参照渡し、値渡しってなに?

どのように説明するといいだろうか?

解決策

回答
sesuo2.jpg
・現時点では、実際にプログラムを書いて、体感するしかない。

 

ユーザー定義関数

前回紹介したユーザー定義関数に関しては、値渡しで作成しました。

この値渡し、参照渡しを理解すると、VBAの中級クラスらしいです。

参照渡し、値渡し 作成手順その1 値渡しのコード


変数aは、メモリ上に存在します。

目には見えません。

この記憶している変数aの値は、1です。


この現象を値渡しといいます。

 

参照渡し、値渡し 作成手順その2 参照渡しのコード


同じく、変数aの値はメモリ上に存在します。

変数の値は、1です。


参照渡し、値渡し 作成手順その3 通常は参照渡しを使う

これは、参照渡し、値渡しの理解できなくても、理解できると思います。

変数をカンタンに変更できる値渡しを利用すると、いつ、どこかでバグが発生するかわかりません。

基本的にはByValを入れて記載します。

例外的に値を書き換えたい場合のみByRefを入れるとバグになりにくいコードが書けます。

ここがポイント

ここがポイント
Function8.png

複雑な処理をする場合は、たくさんのユーザー定義関数を使います。
その際に参照渡し、値渡しは、重要になります。何度もコードを書いて、理解していきましょう。

 

まとめ

今回のまとめ
sesuko3.jpg
上司に説明できなかった柄久 瀬瑠子(エク セルコ)です。しかし、VBA理解にもっと努めようと思いました。

今回のサンプルファイルは、No123です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事