VBA習得期間ってどのくらい?脱初心者までのチャートを紹介

業務改善目的でマクロに取り組みだしておおよそ2年、初のプログラム言語であるVBAも今では苦手意識はなくなりました。振り返って見ればの話ですが、そもそもマクロやVBAは目的ではありませんでした。とにかく仕事時間を減らしたい一心でマクロを手段として利用してきました。

結果、私のVBA習得に関するデータは以下の通りです(全て私調べなので超ざっくりです)。

レベル

脱初心者

期間

マクロに取り組んで1年10か月(内、8か月間エクセルに全く触れていない期間有)

時間

300時間位(業務中の時間も含めているのでエイヤーです)

目次

スキル習得のチャート

脱初心者(私調べ)がどの位のスキルなのか、できるようになった事を時系列で並べました。関連する記事がある場合はリンク置いています。

STEP
基礎知識なしで営業日カレンダーを作成

右クリックにオリジナルメニュー追加、祝日データを外部サイトからダウンロード、チェックボックスで一括設定、等の機能を無謀にも実装しました。変数Withステートメントも理解しないまま、ほぼコピペでマクロ完成です。

STEP
Withステートメントの記述方法を覚える

当時はオブジェクトプロパティが全く理解できていませんでした。「動くからヨシ!」です。

STEP
If ThenステートメントやFor Nextステートメントでひたすら実践

変数はいまいち理解できていませんでしたが、社内の業務で繰り返しの操作がある場合は片っ端からこのステートメントを使ってマクロを作成していました。もちろん「動けばいい」の精神です。

STEP
差し込み印刷に挑戦する

社内で需要が多かったのが「帳票に人名を差し込んで印刷する」業務だったのでカレンダー同様、無謀なチャレンジをしました。これも結果はほぼコピペで完成させたのですが、相変わらず変数も適当、オブジェクトって何ぞ?みたいな状態だったので後から見返した時、自分の作ったマクロが読めませんでした。

ユーザーフォームもこの頃に初めて作成しました。

STEP
基礎知識習得の勉強を始める

自分で作ったマクロが読めないのはさすがに…ってことで、基礎知識の勉強を始めました。順番おかしくね?と自分でも思いますが、私には結果オーライでした。実践してわからないところを調べる方が理解が早かったです。書籍もこの頃に3冊買いました。

楽天ブックス
¥2,178 (2021/11/27 20:23時点 | 楽天市場調べ)
¥3,608 (2021/10/21 11:13時点 | Amazon調べ)
¥2,948 (2021/10/21 11:05時点 | Amazon調べ)
STEP
代入ステートメントを理解する

「オブジェクト変数またはWithブロック変数が設定されていません」のエラーによく怒られていました。Setステートメントの要否が判断できず、イライラしていた時にLetステートメントの存在を知りました。以降は、この手のエラーでググった記憶がありません。

STEP
Rangeオブジェクトの勉強で、色々なことが一気に捗る

クラスメンバーインスタンスオブジェクト/プロパティ/メソッド、等がおぼろげながら理解できるようになりました。概念もそうですが、用語も慣れないとなかなか頭に入りません。VBAに触れだして時間も経っていましたし、用語「だけ」は聞き慣れていたので書籍や解説サイトを読み解くのもそこまで苦行ではありませんでした。

STEP
気が付いたら変数も

変数については、気が付いたらググることがほぼ無くなっていました。書籍やWeb上のサンプルにたくさん触れてきたおかげです。

STEP
プロシージャの分割を意識するようになる

手持ちのマクロも結構な数になり、再利用をするケースが増えてきました。この頃からプロシージャの分割や、引数付のプロシージャを作成するようになりました。

STEP
配列を使い始める

マクロの処理時間を短くするのに、初めて配列を使いました。本来は初期の段階で触れておいた方がいい内容ですが、配列を利用しなくてもセルを使ってマクロが組めるのでついつい後回しになってしまいました。

STEP
外部ライブラリを利用するようになる

主にOutlookとScripting Runtimeですが、ちょこちょこ外部ライブラリを利用するようになりました。参照設定CleateObject関数の違いもしっかり勉強しました

STEP
自作クラスを作成する

特に必要に迫られたわけではなく、なんとなく知っておきたかったので作ってみました。クラス/メンバーの概念がおおよそ理解できたのは自作クラス作成のおかげです。

習得期間は人それぞれ

恐らくですが、一般でいう初心者は卒業できていると思います。で、今までVBAのスキルを磨くのにどう取り組んできたかというと、その時に必要なサンプルを探し、知識が不足していたら補って動かしてきただけです。特別な取り組みはしていません。

冒頭にも書きましたが、私の場合はVBAのスキルを磨くことが目的ではありません。「仕事をはやく終わらせること」が目的です。業務改善にマクロが利用できそうであればそうしますし、VBAのスキルが不足しているのであれば補うだけの話です。マクロ以外に効率のいい手段があるのなら、もちろんそちらを選択します。

自分語りをしている訳ではありません。この記事を読みに来てくれている人のほとんどがそうではないかと思った訳です。「習得期間」が釣り針になりそうな結論ですが、「業務改善の手段としてマクロに取り組んでいるのなら、習得期間は人それぞれ」になります。

手にするサンプルも違えば、その時作るマクロの程度にも差があるでしょう。密度によって習得期間は変わってくると思います。

私の例でいえば、スキルの習得順はある意味めちゃくちゃだし、今後の目標も設定していません。こんなチャートでも業務改善はできていますよ、と皆さんに勇気を与えたかった次第です。VBAのエキスパートを目指す訳ではないのであれば、肩肘張らずに気楽に行ってはいかがでしょうか?

習得期間なんか気にせず、続けることが一番大事です

では、最後までご高覧いただきありがとうございました。

よかったらシェアしてください
URLをコピーする
URLをコピーしました!
目次
閉じる