Excel
VBA
ExcelVBA
マクロ
業務改善

ExcelマクロVBA初心者に大事な3つポイント

More than 1 year has passed since last update.

何故いまさらこのページを書くのか

日々のExcel業務に限界を感じてExcelマクロを使えばもっとうまくできるのではないかと夢見ている方や、今までできなかったこともExcelマクロVBAを記述する力がつけばきっと解決すると思われている方、身の回りでマクロを使って大幅な改善をしている方がいらっしゃった等、きっかけは違うかもしれませんが、ExcelマクロVBAに期待しこれからを変えたいと考えていらっしゃる方はたくさんいます。
世の中には大量の書籍及びインターネット上の情報が溢れています。一方、ExcelマクロVBA初心者の誰もがきっと一度は思ったであろう「私もいつかできるようになりたい」という思いを持った方のうち何パーセントの方が実際に自由自在に自分がしたいことをできるようになるまでスキルアップするでしょうか。私もは数パーセント以下と思っています。結局はマクロが書ける人が当然だと思っていて、初心者が当然と思っていない、その間を埋める情報が世の中には少ないことがスキルアップのために欠けていたのです。今回はこちらを紹介しようと思います。

モチベーションが続かないという問題

インターネットで「Excel マクロ 初心者」で検索すると多くの情報が表示されます。とても簡単に情報が手に入り、手元にもExcelがあり、さあ着手していこうとされたことと思います。私も初めはそうでした。はじめは開発タブを表示してみたり、msgboxで"Hello world!"と表示してみたり、セルをマクロで色つけしてみたり、着実に手順の通り進めることでうまく出来るので嬉しく思いますよね。そこで、もともと実現したかった処理も少しマクロで書いてみたり、実際に動かすことまでは誰もが経験する部分と思います。ただしばらくして私が相談を受けた多くの方が口をそろえていうのが次のような内容です。
-   したいことはひとまず出来たけど応用したり難しいことは出来る気がしない
-   時間が無いからやはり勉強には時間が掛かりそう
-   結局時間がないので今まで通り手作業で行っていくようにします・・etc
結局どれも初めの勢いは良かったもののその後続けていく理由、続けていけるモチベーションを見失ってしまうのです。
これは仕方がないことだと思っています。その理由はこれだけ数あるExcelマクロVBAの情報の中にそもそもプログラミングに対する考え方を記述した部分がないためです。そのような情報を見聞きした初心者の方は手を動かし頭で考えはするものの結局マクロを使い未来を変える理由を見失い、もともとExcelで頑張れば出来た作業をもう一度頑張るほうがストレスが少ないので楽になります。このような状態が蔓延しているように感じます。

初心者に考えてほしい3つのポイント

変数定義は大事、デバッグの方法、といったようなことでは全くありません。上に書いたようなモチベーション問題に対する解決策として次の3つを考えていっていただくことで、必ず後のものは全てついてくると考えています。

その1:自分が解決したい根本的な問題や課題は何か?(ミッション)

プログラムを書く自体は慣れてしまえば簡単な作業であり、きっとどんなプログラムも「その気になれば」実現できるようになることもできます。この「その気になる」がポイントで、一定のスキルを持った状態でも自分自身に一つ軸を持った使命が無ければ全てのスキルを台無しにします。それがここであげた「自分が解決したい根本的な問題や課題は何か?」です。例をあげれば、いくら腕を磨いてきた料理人でもお客様のためを思わずに調理する料理と、決して高級なものは作ることが出来ないけれども自分のことを思って作ってくれた家庭料理なら、どちらがよいか、きっと後者だと私は考えています。プログラムも同じで、主たる軸を持たない状態でなんとなく目の前にある問題を少しずつ解決するよりも、処理や記述の方法には若干の課題はありつつも何を解決したいか意志が明確な人間が記述したプログラミングは必ずその後もその人間とともに成長し続けます。

その2:自分が自分の周りの皆にとってのどのような存在となりたいのか?(ビジョン)

自分が記述するプログラムは単なる文字列といえば文字列ですが、自身の思いを具現化するために書いた自分の分身です。自分が自分の周りの皆にとってどのような存在になりたいかはそのままプログラムに表れます。人には人相があるように、プログラムにもプログラム相があって、自分の思いがそのまま現れることでしょう。プログラムを記述して業務を改善していきたい!と強く願うと同時に、数ヶ月後、数年後の自分が自分の記述したプログラムを通してどのように評価されるのか、どのように周りに貢献できているのか、より良いイメージを明確に描けるようであればモチベーションは必ず維持できます。

その3:今後プログラミングスキルが向上していくストーリーを用意する(戦略)

自分のこれからのスキルはどうやって成長していくか、何年でどのレベルまで向上するかイメージ出来ていますでしょうか。VBAテストのようなものがあれば点数で計測可能となりますしやる気にも繋がるかもしれませんが、このページを見られている方はそのようなスキルを求めているのではなく課題解決や業務改善を願っている方々だと思います。将来は自分のイメージしているようにしかならず、うまくいっている自分を定義しそうなるように戦略的に進めることが成長につながります。私の場合意識したことはとにかく他人に使ってもらい続けることでした。実際にそのプログラムが使えるものなのかどうかをユーザ視点で意見をいただき続けることです。使う側も自分にメリットがなければ手間となるような実験は後回しとなるのでとにかく誰かのためになるもの、誰かが興味を持ってくれるもの、を意識して行うことで独りよがりなプログラムとはならず本当に活躍するプログラムの構築につながります。初めから完璧とはいきませんが、どうか勇気を出して人に公開し続け使ってもらってください。そして興味を持っていただいた方のために、上に書いた自分のミッションと照らし合わせながら軸をぶらさずに進んでいけば必ずVBAの道も開けてきます。私の場合は当初から、プログラムにミッションを持たせて人に公開し続けその方の期待に応えるものを作り続けることでプログラムと一緒に自分も成長し続けることができるというストーリーがありました。ぜひ自分が今後どううまく成長していけるか、イメージを練りましょう。

最後に

自分が何を目的としてExcelマクロVBAに着手しようと思い、自分が誰にとってどのような価値を提供できる存在となっているのか、イメージしましょう。そして、そのイメージを実現するためのストーリーを鮮明に描いて歩んでいきましょう。これが当たり前にしてどこにも書いていないExcelマクロVBA初心者にお伝えしたいもっとの大事な3つのポイントです。今後は私がもっているテクニカルな知識もお伝えしていきますが、今回はExcelマクロVBA初心者の方にお伝えしたい内容を書かせていただきました。ぜひ、1人でもよいので誰かの勇気や今後の成長に今回の内容が役に立てば嬉しいです。