プログラミングの専門知識がない私なりの学習順序を書いてみたいと思います。
結論
結論を先に言ってしまうと、VBAを学ぶ前にまずは、エクセルの機能・ワークシート関数・ショートカットについての知識を身に付けることの方が、先決だと考えています。
私がエクセルVBAを学ぶ一番の動機は、「業務効率化」です。
その点からすると、学習コストの高いエクセルVBAを最初から学ぶよりは、①そもそもエクセルでできることを学ぶ、②ワークシート関数を使う、③ショートカットで作業スピードを向上させる、の順番で学んでいく方がわかりやすい・効率的だと思います。
①そもそもエクセルでできることを学ぶ
マイクロソフトエクセルは、約40年間に渡って表計算ソフトのデファクトスタンダードとしての地位を占めています。
その過程の中で、他の表計算シートを駆逐してきた歴史があります。賛否はあると思いますが、今のエクセルには他の表計算シートにはない機能や利便性があり、それが支持されてきた証明でもあります。
例えば、エクセルの機能を全く知らなければ、表の中から自分が必要とするデータを探す際に、目で探すしかありません。少し知識があれば、キーになる文字列で「検索」することができますし、オートフィルタの知識があれば、より分かりやすい形でデータを絞り込むことができます。
エクセルVBAもエクセルという土俵の上で、エクセルでできることを自動化していくことに他ならないので、まずはエクセルの様々な機能を学ぶことが重要です。
これだけでもだいぶ効率化が進むはずです。
ちなみに、私の場合は、エクセルVBAを学んでいる途中で、MOS(マイクロソフトオフィススペシャリスト)の教科書*1を一通りさらって、体系的に機能を学びました。
②ワークシート関数を使う
エクセルの機能を学ぶことと並行して、ワークシート関数を学ぶことも必要です。
あえて分けて書きましたが、ワークシート関数も表計算ソフトであるエクセルの機能の一部です。
何かしらの作業をエクセルで行おうと思う限りは、多少なりとも表計算ソフトで処理することが適しているという判断が先行しているはずです。そうであれば、その作業にはワークシート関数が介在する余地が大きいことが多いです。
そもそも、エクセルの本分は「表計算」なわけですから、エクセルを使いこなすうえでワークシート関数を身に付けることから逃れることはできません。
ここまで多少大げさな書き方をしましたが、ワークシート関数は約500種類が標準装備されており全てを学ぶ必要があるわけではありません。実務で使う関数は、多くて20個程度かと思います。
私の場合は、データベースから簡単な集計表を作成できる程度にワークシート関数が使えれば十分だと考えています。
具体的には、SUM、SUMIFS、COUNTIFS、VLOOKUP、EOMONTH、TODAY、DATE、IF、IFERROR、TEXT、AND、OR、INDIRECTが使えれば十二分です(13個でしたね)。
③ショートカットで作業スピードを向上させる
ある程度エクセルが使えるようになると、データの転記や表の作成、書式設定といった単純作業が増えて、手数が爆増してきます。
そうなると、限られた業務時間で作業を終わらせるために、必然的にショートカットを覚えなければいけなくなります。
これはエクセルに限ったことではないですが、PCに向き合う時間が増えるにつれて、より簡単に操作できるようになりたいと思うようになるのは当然のことです。
大概の場合には、ショートカットまでマスターすれば(時間的制約も含めて)できないことはなくなりますが、ショートカットを使ってですら面倒になる単純作業も中にはあります。
そこで初めてエクセルVBAの登場となります。
④最後に
私自身もエクセルVBA初心者にも関わらず、長々と偉そうに書いてしまいました。
もちろん、目の前の業務をいち早く効率化したいというシチュエーションに遭遇した時に、必ずしも上記の方法が採れるとは限りません。
ただ、継続的な学習のためには、まず学習をやめないことが重要だと思います。
そうなると、1回1回の学習は、ひとっ飛びに高度なことを学習するよりは、着実にステップバイステップに学習していくことが重要になります。
1回1回の学習のハードルを高くしすぎないことで、継続的に学習し続けられることを目指していきたいです。
*1:私はこれを使いました。