結論、出来ない人は出来ない
冒頭で結論を言っていくスタイル。
わたしがドンドン自動化する姿を見て、先輩からVBAの指南を求められたことがある。
とりあえずFor文の説明をしたところ、全くついてこれなかった。
正確に言うと、繰り返し処理自体は理解してくれた。しかし、
「で、これが何の役に立つの?」
という疑問が全く晴れなかった。
「これが何の役に立つの?」
というのは、プログラミング初心者が挫折する壁の一つである。
For文でループしながら、変数を増加させていき、最終的にメッセージボックスを表示すること。
こんなものに意味を見出すのは非常に苦痛だ。
この壁をどう乗り越えるのか、という考えをしている時点で、まだプログラミングを学ぶ段階には無い。
なぜかというと、プログラミングは
「やりたい処理があるから学ぶ」というモチベーションが無ければ、「これが何の役に立つの?」が一生出てくるからだ。
疑問に思うたびに壁と感じていたら、いつまで経っても学習は進まない。
例えば、.cells(rows.count,1).end(xlup).rowsで最終行を取得できる
と聞いて、既にやりたい処理が決まっている人はこう考える。
「データを蓄積していくのに使えそうだな」
と。
これはある意味センスの部分もあるが、既にやりたい処理が決まっている場合は、その処理に使える情報が無いか意識して学習することが出来るので、習得スピードが全く変わってくる。
今学んでいることが、やりたい処理に使えない場合はどうなのか?
これもやはり学習スピードは高くなる。
なぜなら、「自分がやりたい処理に使えない理由は〇〇だから」と考えれば、学んでいる内容について深く理解することが出来るからだ。
つまり、やりたい処理が決まっていない人は、VBAを学ぼうとしても習得が非常に困難である。