前回はExcel VBAエキスパートスタンダード1章のFunctionの勉強をしました。
前回の記事はこちら
今回はスタンダードの値渡しと参照渡しについてレポートしていきます。
なお今回もわかった文言を絵や表を使ってまとめていくことにします。
理解が間違っているところもあるかもしれませんがわからない人と同じ視点に立てるのは今しかないので細かいところはご容赦ください。
間違えに気づいたら修正していきます(笑)。
なおこの体験記は短時間で効率よく勉強することを目的として書いていますので勉強の際に参考にしてもらえれば幸いです。
<今回の目的>
値渡しと参照渡しを理解する
- 1章を精読する
- 値渡し参照渡しをわかりやすく説明する
今の立ち位置
以前の記事で説明しましたが私の今の立ち位置は以下です。
概要 | 内容 | 勉強時間 | 完了の有無 (Basic) | 完了の有無 (Standard) |
1 公式テキストの購入 | 安く購入できる方法を探す | 1時間 | 1時間済 | 済 |
2 公式テキストの把握 | テスト形式、単元を知る | 1時間 | 15分済 | 7分済 |
3 公式テキスト問題集実施1 | スタンダード2回、ベーシックで1回実施 | 4時間 | 50分済 | 30分 |
4 公式テキスト勉強(×部分) | 間違えた単元の勉強を実施。暗記はボイスメモで | 3時間 | 1時間 | 10分 |
5 公式テキスト勉強(〇部分) | 会っていた単元の勉強を実施。暗記はボイスメモで | 3時間 | 1時間 | |
6 公式テキスト問題集実施2 | スタンダード 3回実施 | 4時間 | ||
7 3~6の繰り返し | 3セット実施 | 20時間 | ||
計 | 36時間 | 4時間5分 | 47分 |
今回は第1章の値渡し参照渡しについて説明します。
結論
いきなりですが今回の結論です。
値渡し:関数に読み取り専用の変数を渡す
参照渡し:関数に編集可能な変数を渡す
値渡しと参照渡しとは?
値渡しと参照渡しとは関数に変数を(引数として)渡すときの「渡し方の種類」です。
言い換えると関数にデータを渡すときにどういったものにするかを考えているということです。
この議論が出ているのは前回Functionをならったことによるものです。Function事態関数ですので。
ちなみに値渡しで渡す場合は引数の最初に「ByVal」(By Value)、参照渡しで渡す場合は「ByRef」(By Reference)を変数の前につけることになっています。
値渡しを分かりやすく説明する
前回同様登場人物を2人用意して説明します。
上司・・・メインのプロシージャにあたる。仕事を部下に頼もうと思っている
エクセル作れるさん・・・Functionプロシージャにあたる。資料までは作れないがデータ加工が得意
①「上司」は「エクセル作れるさん」にグラフ作成の為のデータ加工をお願いする。
その際に必要な情報のリンク先を教える。ただしデータは読み取り専用となっている
②「エクセル作れるさん」はデータを加工し、完了の報告をする。
合わせて成果物として新しいデータも送付する
③上司は新しいデータをもとにグラフを作成する。
なおこの場合元のデータは書き換えられないのでそのまま利用することができます。
まとめると値渡しで渡したデータは加工されることがありません。その為渡す以前の状態のまま再度使用することができます。
参照渡しを分かりやすく説明する
同様に2人の登場人物で考えます。
①「上司」は「エクセル作れるさん」にグラフ作成の為のデータ加工をお願いする。
その際に必要な情報のリンク先を教える。なおデータは編集可能となっている
②「エクセル作れるさん」はデータを加工する。必要に応じてリンク先の情報も変更する。
終了後完了報告をし、合わせて成果物として新しいデータも送付する。
③「上司」は新しいデータをもとにグラフを作成する。
なおこの場合元のデータは変更されているのでその状態から使用することになります。
まとめると参照渡しで渡したデータは関数内で変更されます。その為関数内での処理も把握しておく必要があります
ここでのまとめ
値渡しと参照渡しは読み取り専用か編集可能かの違いです。なお対象は変数のみなので引数に数値や文字列を入れた場合は該当しません。
どちらを使うかはケースバイケースですが渡す側がいじってほしいのかほしくないのかで決めればよいと思います(なおつけるのは渡す側ではなく受け取る関数側になるので注意が必要です。ここは少しわかりにくいです)
これらは引数を指定していくうちにわかっていくと思います。
今回のテキスト勉強時間は10分でした(ブログ作成に別に時間はかかっています汗)。
次回は2章に入っていきたいと思います。
コメント