Mutable_Yunの業務改善ブログ

業務改善や生産性向上のブログです。自動化の手段として、VBAやRPAの勉強に役立つ解説をしています。

VBA 上級者から初段へ⑤ 初段以上は経験と実力が比例しない事と、その解決策

上級者から初段へのステップアップの最終回です。今回は初段入りするための条件を解説します。

この記事は上級です。
レベルについてはExcel VBAの実力(レベル)を定義してみる 初心者~三段をご参照ください。

目次

初段にステップアップすると言うことはどういうことか

初段になるのに必要なのはこれまで学んできた記述がちゃんと使いこなせることと、初段以上になった時に、上達していけるように調べる力を身に付ける事です。

初段と二段の間には壁というか段差があると思います。それに備える為にこれまで学んできたことを盤石にするのと、調べる力をつけることが初段の入口です。

具体的に必要な技術

新しい知識はありません。これまでに覚えたことをしっかり使いこなしているかどうかです。念のために軽く復習しておきましょう。

繰り返し、条件分岐など自由自在に
  • For~Next文で2ずつとか3ずつとかカウントダウンでカウント変数を動かせますか⇒知らなければFor Stepで即検索
  • Do~Loop文でWhileを使わずにExit Doで動的に変わる条件を満たす時にループを抜けることができますか?⇒できなければ即実験。
  • Select Case文でTrue/FalseやIs、Likeによる分岐も使えていますか?⇒使えていなければ即検索
  • If の中にElse Ifは20個までしか書けない事を知っていますか?⇒知らなければ即実験
配列を自由自在に
長い処理を標準モジュールを使いこなすことですっきりと書く

実力は誰かに認定してもらうモノでは無い

独自に(勝手に)決めた上級や初段と言った基準でこれまでVBAの実力を定義してきました。もちろん認定試験があるわけではありません。自分がどれくらいの実力になったのかを判定するのは自分自身です。VBAにはVBAエキスパートという認定資格がありますが、それもこの記事である上級程度のレベルまでしか測定できません。ここから先は、自分で自分の実力を判定していく事が必要となります。

自分で自分の実力を把握する必要がある理由

実力を把握する、つまり、自分が何ができるのか、逆に何ができていないのかを知ることは、今後の実力向上の為に大切です。何故かというと、上級までは同じ事を何度も繰り返したり、調べたりしている内に自然にどのような処理の流れにすれば良いのか、とか、どう書けばいいのかと言う知識が増えていき、慣れていきます。

人によって多少の程度の差こそあれ、経験と実力がほぼ比例して伸びていくと思います。書けば書くほど実力が伸びていくわけです。しかし、これは上級者までです。

上級者になれば、ほとんどのことは自動化できる気になっていると思います。「もう、できないことは無いんじゃないか??」位かもしれません。でも、実際にはまだできないことはたくさんあります。パワーポイントにエクセルのグラフのキャプチャを貼り付けたり、メールを配信したりと言った事はできません。ウェブサイトから天気予報の情報を引っ張ってくることもできません。

言われてみれば「あ、そっか」って感じですよね。上級者はこれまでのVBAの知識はすごいのですが、VBA以外の知識が貧弱です。まだ知らないことがたくさんある事を知らない状況だと思います。何を知らないか分からなければ、次に何を勉強すれば良いのか分かりません。

よって、これからは自分が知らないことは何かを探す。そして調べると言う事が大切になってきます。

自分が知らないことを探す

まずは、エクセル以外のWindowsのアプリケーションをVBAで動かそうとすると、どうやったらいいかを考えてみましょう。あるいは、何のアプリケーションでもいいので、これってVBAでできるのかな?という姿勢で業務に向き合ってはいかがでしょうか?できないことがいっぱいあると思います。できそうだけどどうやってやるか分からない、と言う事が見つかったら、それは実力を向上するチャンスです

ちなみに私はここで一回Pythonに逃げました。できることを増やすと言うより逃げた、に近いと思います。お恥ずかしい。でも、ここで汎用言語と言われる別言語を試してみるのもいいと思います。繰り返しや条件分岐、そしてなんと言っても配列まで理解出来ているのが大きいです。他言語で役に立ちます。他言語ではオブジェクト指向という考え方が頻繁に出てくるので、別言語でオブジェクトの概念を理解してからVBAに戻ってくれば、向かうところ敵なし状態になると思います。(私は「敵なし」状態までは行ってないと思います。自称二~三段です)

自分で調べること

初段以上は知らないことを調べ、知識を増やすと言う事が今まで以上に重要になってきます。上で説明したように、自分のできないことを探して実現しようとすると、必ずオブジェクトやAPIと言った概念に出会うことになります。

そしてオブジェクトやAPIに関する知識は、VBAに関しては上級までの知識よりネットでは遙かに少ないからです。非エンジニアがある程度ツールを作れる様になるまでの技術が簡単に習得できる為、オブジェクトやAPIと言った知識の需要が少ないのかもしれません。

ここから先は、ネットで調べ、自分で試し、公式のドキュメントを調べる。オブジェクトブラウザで調べる。とネット以外の調べ方に習熟していくことが上達のコツだと思います。これは、例えば「配列」とネットで検索すればいくらでも解説記事が出てきたのとは大違いです。

まとめ

初段へのステップアップは初段以降のステップアップの素養が備わった状態になることです。

  • 繰り返しや条件分岐、配列と言った基礎的な文法をしっかり身に付けている
  • 処理の流れを意識したモジュールの設計ができる
  • 自分で自分の実力を客観的に把握し、できることとできないことが分かっている(むやみに自分のことを初心者と言わない)
  • 自分で調べる力を高める

それでは初段以上も頑張っていきましょう!