VBAの学習をこれから始める人に持っておいて欲しいイメージがある。
それは、マクロとは、
あらかじめ決められた動きをパソコンに登録しておき、呼び出しボタンでその動きを実行すること
と理解しておくことだ。
※マクロとは、自動化する機能のこと。マクロを作る材料がVBAである
最初は決められた動きは単純なものしか作れない。
「A1セルに、今日の日付を入力する」
とかそんな程度である。
ここで、
これ、手作業でやれば良いのに、なんでVBAを学ぶの?
と、疑問に思ってしまう人は、私のアドバイスをよく理解して欲しい。
手作業でやった方が早いのは、まだ学習が浅いからだ。
手作業のスピード>VBAでかかるスピード
という図式になるので、VBAを学ぶ必要が無いと感じるだろう。
学習が進み、複雑な動きを登録できるようになると
手作業のスピード<VBAでかかるスピード
へと変化していく。
そして最終的には、
全人類が協力して作業するスピード<あなたのVBAでかかるスピード
になる。
手作業の方が早いとあなたが感じるのは、まだ複雑な動きを登録できるレベルにいないからだ。
作業にかかる時間は、以下の図式で成り立っている。
作業の複雑さ÷作業員の熟練度=かかる時間
(熟練度は、手作業の限界があるので上限は100とする。)
たとえば、作業の複雑さが1000、作業員の熟練度が100だとする。
1000÷100=10
この10という数値は、作業に完全に熟練した人が行う場合を想定した。
VBAを使うと、図式が全く変わる。
(作業の複雑さ÷作業員の熟練度)×0+マクロを実行する時間(初回のみ、マクロを作る時間がプラス)=かかる時間
まず、作業の複雑さはVBAの前では意味をなさなくなる。理由は、作業手順はあらかじめVBAで登録するからだ。
作業員の熟練度も関係ない。マクロを実行するには、ボタンを押すだけである。熟練度が介在する余地がなくなる。