プロシージャって部品だったのか!?ゴマキor辻ちゃんプロシージャ作りたい!

ExcelVBA

こんにちは。ネコヲです。

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

VBAの化身
VBAの化身

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

VBAの化身
VBAの化身

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されるので、勉強になるツイートがたくさん確認できます。

[ノンプロ研]VBA初心者講座第3回・プロシージャ、関数
『コミュニティ「ノンプログラマーのためのスキルアップ研究会」VBA初心者講座第3回のツイートまとめです。コンテンツは「プロシージャ、関数」です。』
ネコヲ
ネコヲ

これはすごいぞ!!!

また、受講生のかにみそさんのすばらしいまとめnoteも勉強になります。

ネコヲ
ネコヲ

アウトプットすごい!

引き続き、第三回目の講義、後編へ続きます。

ネジータ
ネジータ

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

タイトルとURLをコピーしました