【プログラミング初心者】VBAでアハ体験 - モチベーションアップ –

CODING

始まりはコロナ

コロナの影響が拡大してきた2020年春頃、遂にわたしの勤務先もリモートの波がやってきました。
わたしは派遣社員ですが、家で自己啓発に励んで良いとのお達し。
なんとありがたい!!
この会社が少し好きになりました・・・。

特に詳細な提出物は求められていなかったのですが、何をしようかと考えていた時、
閃きました。

8時間も家でたっぷり時間を使えるのなら、プログラミングの勉強をしよう!

業務で役に立つVBAに決定

成果物不要とはいえ、何かしら目に見えるものを残したいと思いました。

pythonやRubyなどの言語を勉強しても、何をどのように作れば良いのかさっぱりわかりません。

そもそもプログラミングで何ができるのかすらイメージができていないのです。

短期間で成果を出すには少し敷居が高すぎる気がしました。

いろいろ考えた挙句、会社でも使用しているVBAが少しばかり理解できれば、
業務にもプラスになるかもしれない、と考えてExcel VBAをやってみることにしました。

なぜならExcelは使用歴も長いので苦もなく使えます。
それにセルなどの操作は目に見えるため、プログラミング初心者にもわかりやすいのではないかとの算段でした。

VBA勉強開始

そうと決まれば勉強開始です。言うまでもなく完全独学。
参考にしたのはいくつかのサイトと、借りたVBAのリファレンス本です。

まずはじめに、ある目的を果たすために1から必要な機能を積み立てていく、
という演習のあるサイトを参考にしました。

例えば見積書を作る演習であれば、
 ・第1回目:とりあえず表示されるようにVBAを組む
 ・第2回目:別の機能を追加してもっと使いやすくする。
 ・第3回目:前回までの機能で無駄なコードを書き換える。
次は・・・と言うふうにレッスンが進むごとにコードが精錬されていきます。

わたしはVBAのエディターを開き、「へえ〜」と関心しながらコードを真似ているだけなのですが、
思いの外この方法があっていたようで、楽しくて一気に進めました。

もちろん、そのサイトの中だけでは疑問点を解決することができず、
わからないメソッドやプロパティの説明を求めて様々なサイトをあたりました。

しかしなかなか簡単に解決しないものが多いものです。
そのうちに「プログラミングの勉強って泥臭い作業が山ほどある」ということが薄々感じてきました。

はじめはこのようにして、VBAの書き方、動きや仕組み、プログラミングの考え方の基本を学びました。

自分でもなにか作りたい、という気持ち

なんとなく動く感じが想像できてきたら、次は自分でオリジナルのものが作りたくなりました。

この流れ、いいと思いませんか!? 自分で言うのもなんですが・・・。

こんな風に考えること自体が人生初体験で、
文系代表プログラミング経験ゼロのわたしに訪れた奇跡の瞬間だったのです。(大げさ?いえいえ)

このように調子付いたわたしは、会社で使えそうな機能を作ろうと考えました。

難しいものだときっと簡単に挫折するだろうと考えて、簡単そうな機能を選びました。

それは任意の日付から任意の週数または日数後の日付を返す機能です。

ネットでもこんな機能は山ほどあるし、恐らくExcelでも関数でなんとかなるのでしょうが、
パッと出してパッと使えるマクロをVBAで作れば、役に立つだろうと思いました。

そうと決まれば早速コーディングです!

簡単だろうと決めてかかっていたものの、
あれ?動かないぞ…
あれ?そもそもこれどうやってこの機能を呼び出すんだろう…?
と分かりやすい初心者の私は色々な壁にぶち当たりまくりました。

しかし一から考えていく工程はとても建設的で、調べるスキルも(少し)上がり、
何度も試行錯誤を重ねた結果、2日かかってわたしの初マクロが完成しました。

小さな機能 大きな自信

かなり単純で、しかも作り込みも甘いマクロですが、
自分ひとりでやり遂げたという経験は
「わたしみたいな初心者でもプログラミングできるんだ」
という大きな自信になりました。

そしてこの一連の作業により、プログラミングというものが理解できました。

これまでブラックボックスだったものが初めて腑に落ちたのです。

人生初体験です。

これはわたしのプログラミングの「アハ体験」だと思っています。

作ったのは本当に小さい機能なのに、この達成感と自信。

全然ヘナチョコなコーディングだったのですが、この大いなる勘違いが原道力になり、
「今度こそプログラミングをモノにしよう」と決心しました。

PythonやHTMLの本格的な勉強を始めることになったのです。


あなたがもし初心者プログラマーでしたら、
勉強の合間に一度簡単なオリジナル作品を作ってみてください。

その後のモチベーションが断然違いますよ!

コメント