スポンサーリンク
皆さん、こんにちは。2021年4月よりVBAを勉強し始めて、現在1年8ヶ月目となりました。(現在、2022年11月26日)
今回は私が学習していく中で、よくつまづいていた「再帰関数(再帰呼び出し)」について備忘録的に記していきたいと思います。
正直、学習中は数時間考え込んでもアルゴリズムを理解できなかったですし、未だに使いこなせる自信はありません。しかし、それを逆手に取り、素人が素人目線で解説しておりますので、
是非、参考にしてください。
まずは、再帰関数とは・・・
『あるプロシージャの処理内部で再びそのプロシージャ自身を呼び出す処理』
実際、このブログ記事をお読みのあなたは、上記の内容自体はわかっていると思いますが、そのコードの動きを理解できなくてサイト検索していることだと思います。
上記、コードについては、引数0の値で、ファンクション関数を呼び出しています。funcプロシージャ内で、func(r+1)が呼び出し元となり、再帰関数が発動しています。引数r+1で1が加わっていき、rが5になるとプロシージャが終了します。
「画像:再帰呼び出し解説」の④については、未処理の4~0が順番に処理されていきプロシージャ終了となります。
これらの引数の動きについては、Debug.Printやローカルウィンドウで丁寧に確認することをお勧めします。データが積み上げ順と反対に取り出されていくんですね。
これについては定番問題です。
理解のポイント
上記3点を押さえれば、理解が進むと思います。
筆者おすすめ!!「たった1日で即戦力になるExcelマスター講座」受講体験談 (VBAマスター講座もあります)はこちら↓↓
いかがだったでしょうか。コードの動きを正確に理解できないと、なかなか再帰呼び出しを使いこなすのは難しいかもしれないですね。
最後にサイト「エクセルの神髄」より良問のリンクを貼らせていただきます。
次回以降、VBA学習の中で気になったことをサイトアップしていきますので、楽しみにお待ちください。