私のVBAとの出会い

もともと、私がVBAを覚えたのは、「ExcelでWordの差込印刷みたいなことってできないんだろうか」とggったことがきっかけだ。

一応、番号を入力したらそれに対応して内容が変化するように数式が埋め込まれていたんだけど、それが全部手作業だった。全てプリントアウトする必要があったんだけど、それまでの担当者は、「セルに"1"を入力して印刷、"2"を入力して印刷、"3"を入力して印刷……」ということを200回ぐらい繰り返していたらしい。

「バカヤロー、そんなアホなこと、デキッコナイス! だいいち、Wordでフツーにできることなら、誰かがExcelでもやる方法を考えているはず! やったるで!」とggりまくって、

マクロというものを使えばできるらしい

と知ったのが、VBAとの出会いだった。そのとき既に40歳を超えていたんですけどw

久しぶりにggってみたんだが、当時の私がたどり着いたのはこのページ。懐かしいな。

Sub 個人票印刷()
  Range("個人番号") = Range("自")
  Do While Range("個人番号") <= Range("至")
    Sheets("個人票").PrintOut
    Range("個人番号") = Range("個人番号") + 1
  Loop
End Sub

これがサンプルコード。もちろん、このままでは使えないから、解読して自分の業務に合わせてアレンジする必要があった。

今見ると、非常にイヤな書き方のコードだが、これが当時の私には良かった。とにかく解読はできたから。

んで、実験。ポチッとボタンを押して実行したらアンタ、プリンタから凄まじい勢いで出てくるw

ええ、ものの5分もたたずにできちゃいましたよ。

「これがマクロってものか」……すぐに本屋へ走りましたよ。そこで出会ったのが立山秀利さんの『実例で学ぶExcelVBA』。この本を読んで、データ転記マクロを自作してから一気にハマりました。

それからはまあ、自分の業務に関することでおよそ自動化できそうなものはほとんど自動化していきましたよ。おかげで、残業自慢しとるようなヤツばっかりの職場内で私だけが目に見えて残業や休日の自主的ボランティア出勤が減っていきましたよ(まあ、実際にはそんなに単純なものでもなくてあれこれとうっとうしこともあったんですけど、その辺は省略)。

まあ、VBAと出会えてよかったなあと、そういう話です。つまんない話ですみません。

追伸

いつの間にか「読者」というパラメータが「8」になっていてびっくりしています。

しかも、その中にt-homという人がいるではないか!!!!!!!! 「クラスモジュールって何じゃいな???」と思っていた頃に(っていうか今でもですけど)この方のブログには大変お世話になっておりますし、今読んでもまだ理解不能なところが結構あるので、私にとってはまさに雲の上の人なんですけど……。

私は、この「はてな」というものの仕組みがまるで分かっとらんので、どう対応して良いのかサッパリ分かりません。

もし、このブログの読者になってくださっている方で、「何だよコイツは! 人様が読者になってやってるのに何の挨拶もなしかよ! 失礼なヤツやのー」とお怒りの方がおられましたら、私がどのように振る舞えば良いのか教えてください。

@akashi_keirin on Twitter