ノンプロ研初心者プログラミング講座【VBAコース第7期】_03

コミュニティ「ノンプログラマーのためのスキルアップ研究会」のVBA初心者講座 第3回のツイートまとめです。今回のテーマは「プロシージャと関数」です!
0
FukuCyndi papa @FukucyndiP

プロシージャに引数を渡すときは    ① 変数にセットされた値のコピーを渡す  ② 変数をセットしたところの情報を渡す の2種類があります。 前者を値渡し、後者を参照渡しといいます 更に小難しくなってきましたw #ノンプロ研 #VBA初心者講座

2022-10-21 20:31:53
FukuCyndi papa @FukucyndiP

小難しいので、壁塗り注文になおすと  ① 値渡し:注文書の写しを渡す  ② 参照渡し:オリジナルの注文書保管場所を教える(現実だとちょっとヤバいカモ) #ノンプロ研 #VBA初心者講座

2022-10-21 20:32:35
迷子のサスケ🐈 @gomame_socks

プロシージャ間の引数の渡し方にはふたつの方法がある 値渡し(ByVal)と参照渡し(ByRef)ですね #ノンプロ研 #VBA初心者講座

2022-10-21 20:32:50
FukuCyndi papa @FukucyndiP

値渡しと参照渡しで起こることの違いは、 仮に注文書の記載を壁塗り屋さんに修正してもらった場合  値渡し:修正はコピーに書かれるので、オリジナルはそのまま残る  参照渡し:オリジナルに直接修正が加わる(オリジナルが書き変わる) #ノンプロ研 #VBA初心者講座

2022-10-21 20:33:07
FukuCyndi papa @FukucyndiP

値渡しと参照渡し・・・ 結構理解するのに時間がかかりました。。 #ノンプロ研 #VBA初心者講座

2022-10-21 20:34:55
FukuCyndi papa @FukucyndiP

値渡しの ByVal, 参照渡し ByRef、どちらを使うか・・・ とりあえず値渡しを選んどけば無難 #ノンプロ研 #VBA初心者講座

2022-10-21 20:35:06
FukuCyndi papa @FukucyndiP

因みにByBal/ByRef を省略するとByRef扱いになるゾ #ノンプロ研 #VBA初心者講座

2022-10-21 20:35:35
迷子のサスケ🐈 @gomame_socks

ByRefは参照渡し 引数で渡されたパラメータの値を操作すると、元の値が変更されてしまうので注意 #ノンプロ研 #VBA初心者講座

2022-10-21 20:36:10
FukuCyndi papa @FukucyndiP

値渡しと参照渡しの演習です ややこしいので、ステップ実行で挙動を確めてくださいねー #ノンプロ研 #VBA初心者講座

2022-10-21 20:37:12
たにぐち @tngckik

参照渡し・値渡しは、どちらも関数の引数の種類。 引数の頭に BRef(参照渡し) ByVal(値渡し) をつける ByRef パラメータ As 型 →ByRefは省略可能なので、注意が必要。省略しないほうがよい。 ByVal パラメータ As 型 →今の所はこちらで #ノンプロ研 #VBA初心者講座

2022-10-21 20:42:21
FukuCyndi papa @FukucyndiP

ByVal/ ByRefは省略しない方が、後々他の方が見ても、自分が見てもわかりやすいです #ノンプロ研 #VBA初心者講座

2022-10-21 20:42:52
FukuCyndi papa @FukucyndiP

コードをなぜ分けるのか? 一度にすべてを書くより、分けて書いた方が、コードの修正やメンテナンスがやりやすいです。 #ノンプロ研 #VBA初心者講座

2022-10-21 20:44:30
迷子のサスケ🐈 @gomame_socks

どうしてプロシージャを分ける必要があるの? Ans.処理が多くなればなるほど、コードが長くなってしまう。短ければ、どこに何があるのか見つけやすくなるので、メンテもしやすくなる。 #ノンプロ研 #VBA初心者講座

2022-10-21 20:44:31
迷子のサスケ🐈 @gomame_socks

宿題が続きますよ~ 奇数か偶数かはどう判断するのか?がポイントですね #ノンプロ研 #VBA初心者講座

2022-10-21 20:45:39
迷子のサスケ🐈 @gomame_socks

引数とパラメータの名前は揃えたほうがいいのか?というご質問。 ほんださんは揃える派。敢えて似ている別の名前にする方もいるそうです。 どっちにするかは決めておきましょう。 #ノンプロ研 #VBA初心者講座

2022-10-21 20:54:39
FukuCyndi papa @FukucyndiP

次は戻り値のあるFunctionプロシージャです。 受け取った値に処理を加えて返します ピザ屋に注文書を渡してピザを作って配達してもらうイメージです #ノンプロ研 #VBA初心者講座

2022-10-21 20:56:34
FukuCyndi papa @FukucyndiP

Function プロシージャは  Function プロシージャ名(ByVal パラメータ1 As 型, ByVal パラメータ2 As 型,...) As 型   '処理   プロシージャ名 = 戻り値  End Function 最後にプロシージャ名に処理でできた値を代入するのがお作法です #ノンプロ研 #VBA初心者講座

2022-10-21 20:56:56
迷子のサスケ🐈 @gomame_socks

関数: 実行するとなんらかの処理を行って、結果を返してくれるもの Functionプロシージャっていいますよ #ノンプロ研 #VBA初心者講座

2022-10-21 20:57:59
FukuCyndi papa @FukucyndiP

Functionプロシージャは戻り値を返すものなので、その戻り値の型を最初に宣言します Function プロシージャ名() as 型 #ノンプロ研 #VBA初心者講座

2022-10-21 20:58:20
たにぐち @tngckik

Functionプロシージャの宣言 Function プロシージャ名(ByVal パラメータ1 As 型, _ ByVal パラメータ2 As 型,...) As 型 '処理 プロシージャ名 = 戻り値 End Function As 型 戻り値の型 #ノンプロ研 #VBA初心者講座

2022-10-21 21:00:11