はじめに
筆者は、常日頃プログラミングを始めるならExcelVBAが最も初心者に良い環境なのではと考えています。
理由は、
・Excelを持っていればすぐに始められる
・文法が理解しやすくとっつきやすい
・結果がすぐに表現できるので達成感がある
・実務に応用しやすく実際に仕事で楽できる
などです。
そもそもExcelが使いやすいように初心者向けに作られているというのが根源にあると思います。
ExcelVBAの経験
筆者がExcelVBAを本格的に始めたのは、30代になってからです。
当時、プラント施設の所長となって色々と資料を扱わなければならなかったのですが、最初に業務改善したのは、お弁当表(笑)。
毎日注文を記入してもらい、月末に合計を出すのですが、メニューが色々あるので手計算だと結構大変でした。
最初はシート上のマクロが作ったのですが、煩雑だったのでVBAに転向しました。
題材としては初級者向けて練習になりました。
その後は、業務の集計表など自分のためにVBAを書くことが多かったですね。
良く合計が間違っているとか言われたのですが、VBAにしてからは怒られなくなりました。
本格的なプログラムに取り組んだのは会社全体の勤務表プログラムです。
ちょうどこの時期に事業所ごとにPCを配置してメールで連絡をやり取りするようになったのですが、
それまで一名分づつ出勤簿をFAXするというご時世。
手書きの出勤簿を送る人が多かった時に、メールでExcelファイルを送った途端に本社の目に留まりそのまま開発担当に。
社長の知り合いだというプログラマーと二人三脚で勤務表プログラムを開発開始。
私自身はこの時プログラムは一行も書いていませんでしたが、総務課とプログラマーとのやり取りの橋渡し役でした。
それもで、この事で労務管理の知識とか、VBAで何ができるかを学びました。
1年ほどしてプログラマーが去ることになり、今ある勤務表プログラムの保守を担当する事に。
相当大きなプログラムでしたが、プリントアウトして一行一行解読して、何とか解読しました。
思えばこの時の経験がVBAの大きなスキルアップにつながったと思います。

教訓:スキルアップしたければ先輩の書いた大きくて複雑なプログラムを解読せよ!
最初は「プログラムが動かない」というクレームに冷や冷やしていましたが、デバッガを使えるようになると、淡々とミスを見つける作業に変わってきました。
数年するとバグも無くなってくるので、動かなくなったというクレームは、操作ミスが殆どで対応も楽になってきました。
今、こうしてExcelVBAを教えるサイトを続けられるのも、わからない事を見つけられるようになったり、間違いを間違いと気付けるようになった事が大きいです。
ExcelVBAの独学は可能か?
独学は可能か?という質問に関しては、十分に「可能」だと思っています。
プログラムを学ぶ環境という点から言えば、昔よりも格段に情報が手に入るようになったと言えますので、そういう状況から考えても、独学で得られる情報量はアップしています。
逆に情報が溢れすぎていて何から手を付けて良いのか分からない人も多いでしょう。
まずは自分の抱えている問題に目を向けよう
漠然とプログラムを学びたいと思っても、なかなかモチベーションが上がらないでしょう。
夢は具体的にすればするほど達成に近づけるそうです。
まずは、自分がExcelでどんな事をクリアしていきたいのかを考えてみましょう。
私の場合は「お弁当表」でしたが、最初は他愛ない事で構いません。
取り組んでいくうちに「プログラミングってこういう感じなんだ!」と実感を持てるようになります。
1つのプログラムが完成すると、次はこんなことをやってみないと思うようになるでしょう。
プログラミングの基礎
見よう見まねでプログラミングに取り組んでいると、何か同じような事を繰り返しているように感じていると思います。
プログラムの基礎は、変数、繰り返し処理、条件分岐、そしてオブジェクトで成り立っています。
具体的に上げると、
変数は、Dim i As Long などとして、 i をLong型(整数型)の入れ物として使います。
繰り返し処理は、For文の事で、1~10まで繰り返せという処理です。
条件分岐は、If文の事で、5以上だったら、次の命令を実行しなさい。
というような感じです。
最後のオブジェクトですが、これは主にExcelの部品というような意味合いです。
大きく分類すると、VBAはこの4つを使い回してプログラムします。ですからこれらの基礎を使い回す事ができればプログラミングが出来るようになったといえるでしょう。
プログラミングの効用
実は、プログラミングをするようになると、業務効率が上がるという事以外に別の能力が身に付きます。
それは、問題を解決するためのシステムや仕組みが論理的に理解できるという事です。
ちょっと抽象的な言い方になってしまいましたが、実は面倒な作業をプログラミングで簡単に、正確に運用できるようになったという事自体が、その複雑な作業の根本的な仕組みを理解した事に繋がるのです。
すると、「この作業は、むしろこうした方が効率的になるんじゃないの?」という道筋が見えてくるのです。そもそもプログラミング自体が問題の道筋を考える行為なので、プログラミングを続けていると問題解決への道筋を見つけやすくなってきます。
このようなプログラミングの効用は、実は日本の教育でプログラミングを推し進めている思想なのだと思います。
まとめ
ExcelVBAの専属プログラマーというのは、他のプログラミング言語に比べて少数派だと思います。
それは決して需要がないからではなく、誰もが始めやすいので使う人は使っているからだと思います。数百人程度の会社ならば、1人や2人はExcelVBAを書ける人がいます。
プログラムは専門的なので自分には無理とか、必要ないと考えている人も、Excelを飛躍的に便利にするモノとして、首を突っ込んでみてはいかがでしょうか?
数時間、半日かかっていた作業が、数秒で終わった。
そんなマジックを是非、体験してみてください。
コメント