こんにちは。ネコヲです。
先週6月16日、ノンプロ研初心者向け講座【VBAコース】第三回の講義に参加しました。

ほ~っほっほ、1回目、2回目の講義は前菜とスープよ!

3回目はガッツリとした肉料理よ!40代のあ~たの胃袋で消化(理解)できるかしら?シャー!!

くっそ~!確かに40代の胃袋にガッツリ肉料理はきつかったぜ。

ゆっくり消化していこうぜ!
今回も、双子の兄ゆっさんをアシスタントにお送りします。
第三回の講義は、かなりボリューム大だったので、前半と後半にわけてレビューしていきます。
それでは、さっそく行ってみましょう!
プロシージャってなんぞや?
「プロシージャ(procedure)」 英単語の意味は「手続き」です。
プログラミング言語でいう「プロシージャ」とは、一定の処理の集まり(=手続き)をひとまとめにしたもののことです。この一定の処理の集まりには名前が付けられます。

名前がつくことによって、「お~い!〇〇さ~ん」って感じで呼び出しやすくなるよね。
この「呼び出している」ってところがポイントです。
プロシージャは部品だったのか!?
あるプロシージャから、あるプロシージャを呼び出すことで、プロシージャ間を行き来出来るんです!
1つのプロシージャで、ダラダラ長~く書いて完結させるより、複数のプロシージャを組み合わせて作るのが「通」の作り方なんですね!
今まで1つのプロシージャでだらだら~と書いていました。この発見はまさに目から鱗ポイントでした。

ここが「初学者」と「通」との違いポイントなんだな!よし!アイドルで例えてみるか!
引用画像:Amazon

おい、やっぱりアイドルの例えが古いな!

0年代ハロプロは永遠のアイドルなんだよ。

だけど、ん?これをみると、、、、、
( ゚д゚)ハッ!

プロシージャって部品を作るみたいな感覚なんだな。

おい!俺の永遠のアイドルを部品呼ばわりするな!

でもよ~、優れた部品は、何回も使いまわしができて便利だもんな。
あややプロシージャはあくまでも「あやや」だけど、モー娘。プロシージャは、
「プッチモニ。」になれたり、
引用画像:Amazon
「タンポポ」になれたりできますね。
引用画像:Amazon

一つ一つのプロシージャの汎用性が高いな!

ってことは、いかに汎用性の高い部品を作れるかがプログラミングの肝なのかも!?

モー娘。でいえば、辻ちゃんプロシージャとゴマキプロシージャあたりか。確かに汎用性あるぜ。

現モー娘。のメンバーで例えないのかよ。(ほんとはこいつ現モー娘。の「にわか」ファンだよな・・・)
今回の講義で、特に印象に残ったのが、この、プロシージャって部品みたいに利用するんだな~、ってところでした。
漠然と、テクニックというかセンスが問われそうな感じがしました。
SubプロシージャとFunctionプロシージャ
VBAのプロシージャにはいくつか種類がありますが、初心者講座では主要な2つのプロシージャとして、SubプロシージャとFunctionプロシージャの説明がありました。
一回目、二回目の講義でも、頻出していたSubプロシージャ。
それに対し、今回初めて登場したfunctionプロシージャ。
両者の決定的な違いはズバリ!
「戻り値」があるかないかです。

Subプロシージャには戻り値はなくて、Functionプロシージャには戻り値があるんだ!

おい!その前に「戻り値」ってなんだ?
「戻る」ってことは出処もあるってことだよな?

お、さすが我が兄貴、鋭いぜ!

プログラミングってそもそも何かを処理して結果を導くんだろ?ってことは前提として処理すべき何か(素材)があるわけだろ?
今回の講義でいえば、その何か(素材)とは、引数の事ですかね。

引数?
引数とは、プログラム中で関数やメソッド、サブルーチンなどを呼び出すときに渡す値のこと。渡された側はその値に従って処理を行い、結果を返す。
引用:https://e-words.jp/w/%E5%BC%95%E6%95%B0.html

ふむふむ、難しく書いてあるけど、ひとまず「渡す値」ってことで理解しとこうぜ~!

じゃあ戻り値は、渡された値を処理した後に渡してきた奴に戻す値ってことか!

だから戻り値か!戻り値って名前つけたやつはネーミングセンスの塊だな!
Subプロシージャの場合
引数→プロシージャ
Functionプロシージャの場合
引数→プロシージャ→戻り値
ここも「なるほど~」なポイントでした。
渡す方から受ける方が引数を受け取る。
↓
受けた方(Functionプロシージャ)は計算し戻り値をだす。
↓
戻り値を、渡し元に返す。
実務でどう使うのかまだイメージがわかないので、とにかくたくさんコードを写経して訓練しないとな~と感じました。

くっそ~、俺はまだまだスーパー〇〇ヤ人には程遠いぜ・・・

トレーニングあるのみ!!
まとめ
いや~、今回の講義内容は難しかったです!1回目の生講義の時は、頭の理解が全く追いつかず、とにかく写経して動かして結果をみる、という一連の行為をただ辿っているだけでした。
でも講義後も動画がアーカイブで残るので、1回目よりも2回目の方が頭に入ってきます!
また、こちらの講義のいいところは、講義を補足してくれる要素が満載なところです。
講義と連動しているTwitterが、後ほどまとめとしてUPされるので、勉強になるツイートがたくさん確認できます。


これはすごいぞ!!!
また、受講生のかにみそさんのすばらしいまとめnoteも勉強になります。
VBA初級講座第3回、本日もありがとうございました! #ノンプロ研
(1)プロシージャ:https://t.co/aocNjSDQ9R
(2)関数:https://t.co/rebbc9NXQE
(3)VBA関数:https://t.co/gsL449TjUp今回の受講noteは超雑プットになりました。
覚えているうちに整理しなきゃ(/・ω・)/— かにみそ.gs (@henjin_go) June 16, 2021

アウトプットすごい!
引き続き、第三回目の講義、後編へ続きます。

トレーニングあるのみだ。