VBA-Tips

【初学者向け】Excel VBAの効果的な学習方法について

 

この記事では、業務効率化や業務改善を目的としたプログラミングの初心者(学び始めた方)がVBAを学ぶ際に、どのように学習していったら良いか、その方法についてお話していきたいと思います。

 

なお、別の記事で社会人の方が最初に学ぶべきプログラミング言語はExcelのVBA言語である理由が以下にありますので、興味がある方はご覧ください。

[nlink url=”https://resthill.blog/programming_beginnerguide/”]

 

Excel VBAの学習は独学で勉強可能

システム開発等の業務を行なっている方達は相当なレベルのプログラミングスキルの習得が必要になります。

 

プログラミングスキルとして、アプリやシステム開発等で実際に売れるものを作成できる(簡単に中級以上のプログラミングスキルと定義します)レベルまで習得しようとすると、個人差もありますが約1000時間ほど学習時間が必要だとも言われています。

 

しかし、正直なところ、システム開発等をせずに業務効率化や業務改善を目的としたプログラミングスキルの習得を目的とした場合は、高度なプログラミングスキルは必要ないと思います。

 

世の中にプログラム言語は多々ありますが、

ExcelのVBAを用いて業務効率化を目的とした場合のレベルで考えれば、プログラミングスキルの習得は、約100時間程度もあれば習得可能だと考えています。

 

いや、体感ではもっと短くても十分に活用できるレベルになると思います。

 

現在、プログラミングスキルの重要性が世間でも見直されており、プログラミング学習を行なう教室等は多数ありますが、そのような教室に通わなくても、業務効率化するレベルのプログラミングスキルは独学で習得可能だと考えます。

 

以下で独学で習得する場合のおすすめの方法を紹介します。

 

おすすめ学習法

学習する方法はたくさんあると思いますが、当たり前のことも含めてこれらがおすすめだと考えます。

 

書籍を用いて勉強

「書籍」いわゆる本での学習は鉄板ですよね。

 

現在は、「VBA入門」や「世界一分かりやすいVBA」等、色々な分かりやすい書籍がたくさん出版されています。このような書籍は非常にまとまっていてプログラミングを始めたばかりの方が学習する上でとても有効だと思います。

 

そのため、本当にプログラミングを始めたばかりの方は、どの本を選んでも吸収できることはとても多く、正直どの本を読んでもある程度レベルアップにはつながると思います。

 

しかし、注意して頂きたいのが、

その方の前提知識にもよるのですが、少しレベルアップした状態で、何も考えず関連本を買ってみてみると、自分が学びたい内容となかなかマッチしていないことが良くあって、本の内容の通りに読み進めていると、「そこは知ってるよ!」や「それはやりたい事じゃない!」など頭に浮かんできて、結局知れた内容は書籍全体の1割、2割程度だったと感じることがあります。

 

そうなってくると、その方の感覚としては、「本を買ったけど、少しもったいなかったかな。。。」となってしまいます。

(ただ、それでもしっかり読んでみると知っていると思っていた分野にも新たに気付きなどがあり、読んでよかったと思える部分が意外にあったりしますが。)

 

そのため、買う前に本の内容をよく吟味して、自分の学びたい内容とマッチしているか今の自分のレベルと書籍のレベルは合っているかを確かめてから購入することをおすすめします。

 

それらを確かめる方法としては、まずは目次をみてください。

目次は筆者が書きたいことを端的にまとめてある部分なので、そこで自分の学びたい内容とマッチしているかを判断できます

そして、自分の知りたい内容のページをめくって、どのターゲット層に向けた記載レベルかを確認してみてください

 

そうすることで自分が必要としている書籍であるかを判断できると思います。

 

インターネットにて調べる

Google等で「VBA 基本」「VBA 入門」等と調べると、解説が丁寧にされている良くまとまったサイトが多数出てきます。

 

情報のまとまり具合は書籍に比べるとやはり多少劣るかとは思いますが、うまく活用することで一冊の書籍に記載されている以上の情報をすぐ知ることが出来るので、調べ方次第でとても学習に適している方法だと思います。

 

しかも、現代ではスマホは常に所持していると思いますので、すきま時間にちょっとした調べものをして。ということもできるのでまとまった時間をとれなくても学習することが可能です。

 

わたしは、ある一定レベルの知識(プログラミングの基本原則を理解して、プログラミングでできることを知っている状態)があれば、後はインターネットだけを用いて、調べながら開発等を進めれば十分自分の行いたいことを実現できると考えています。

 

逆に言えば、インターネットがない環境でプログラミングを行おうとすると、調べることにたくさんの時間をとられてしまい効率的な開発ができないと思います。

 

実際にVBAを使用して作ってみる

この方法はVBAにおいては特に有効であると考えます。

 

VBAに限らず他プログラミング言語を用いてもプログラミングをする際は、①コーディングをして、②実行させて、③結果を見て、④修正をしてというサイクルを繰り返して、完成に近づけていくことが多いです。

VBAは①②③を回すことが非常にしやすい(UXが優れている)です。簡単に言うとVBAコードを実行させた結果がExcel内のシートやセル等に結果が分かりやすく反映されるということです。

自分で作ったもの(コーディングをしたもの)を動かして、動いている状態を認識することでモチベーションも上がるし、何より動かした結果を確認しやすいです。

 

何度もプログラミングを実施しデバッグという概念を理解できれば、この感覚は薄らいできますが、初心者においてはこの特徴は非常に大事です。

 

 

またExcelの良いところとして、VBAコードを自動生成してくれる”マクロ記録”という機能があることです。

この機能を使い、①定期的に行なっている作業をマクロ記録を用いてVBAコードを自動生成し、②それを基にしてコードの改変を行って完成させるとすることができます。

簡易的な業務効率化でしたら、マクロ記録を用いてベースとなるVBAコードを作成してそれを修正することが最短の道なのではないかと思います。

 

ただ、少し複雑な操作等が発生するような業務効率化や自分以外も使用する可能性があるようなVBAを用いたツールを開発する場合は、マクロ記録からコードを作成するのはよした方が良いかもしれません。

 

まとめ

今回紹介した3つの方法を全て並行にこなすことが一番スキルが身に付くかと思いますが、どの程度の割合で実施すればよいか迷うと思います。

 

そのため初心者におすすめする方法としては、

①まずは1冊本を読む。

②Excelを使って実際にVBAコードを書き動かしてみる。

③途中でつまずいた際はインターネットで調べて解決する。

というサイクルを回すのが良いのかなと思います。

 

サイクルを回す頻度としては、

①→②→③を1度実施し、後は②→③を何度も回す。

そしてある程度知識が付いたら、最初に読んだ書籍から少しレベルアップした書籍を基に、

再度、①→②→③を1度実施し、後は②→③を何度も回す。

 

このサイクルを何度も行うことが、一番スキル等が身に付く方法なのかなと思います。

 

そして、実際にインターネットで調べていて、「こんなことできるんだ。。。」という気になった動作があった場合は、それらのVBAコードをサンプルコードがあればコピペ等で、なければVBAコードを考えて組み込んで動かしてみることで、今後自分の中での動作の選択肢が増えて、業務効率化における発想の幅が広がることに繋がると思いますので、おすすめします。