VBAの学習をこれから始める人に持っておいて欲しいイメージがある。

 

それは、マクロとは、

あらかじめ決められた動きをパソコンに登録しておき、呼び出しボタンでその動きを実行すること

 
と理解しておくことだ。
※マクロとは、自動化する機能のこと。マクロを作る材料がVBAである
 

最初は決められた動きは単純なものしか作れない。

 

「A1セルに、今日の日付を入力する」

 

とかそんな程度である。

 

 

ここで、

これ、手作業でやれば良いのに、なんでVBAを学ぶの?

 
と、疑問に思ってしまう人は、私のアドバイスをよく理解して欲しい。
 
手作業でやった方が早いのは、まだ学習が浅いからだ。
 
手作業のスピード>VBAでかかるスピード
 
という図式になるので、VBAを学ぶ必要が無いと感じるだろう。
 
学習が進み、複雑な動きを登録できるようになると
 
手作業のスピード<VBAでかかるスピード
 
へと変化していく。
 
そして最終的には、

全人類が協力して作業するスピード<あなたのVBAでかかるスピード

になる。
 
手作業の方が早いとあなたが感じるのは、まだ複雑な動きを登録できるレベルにいないからだ。
 
作業にかかる時間は、以下の図式で成り立っている。
 
作業の複雑さ÷作業員の熟練度=かかる時間
(熟練度は、手作業の限界があるので上限は100とする。)
 
たとえば、作業の複雑さが1000、作業員の熟練度が100だとする。
1000÷100=10
 
この10という数値は、作業に完全に熟練した人が行う場合を想定した。
 
VBAを使うと、図式が全く変わる。
 
(作業の複雑さ÷作業員の熟練度)×0+マクロを実行する時間(初回のみ、マクロを作る時間がプラス)=かかる時間
 
 
まず、作業の複雑さはVBAの前では意味をなさなくなる。理由は、作業手順はあらかじめVBAで登録するからだ。
作業員の熟練度も関係ない。マクロを実行するには、ボタンを押すだけである。熟練度が介在する余地がなくなる。
 

VBAで時間がかかるように見えるのは、

初期の頃は学習コストがかかるからだ。