【プログラミング】誰かのためにマクロプログラムを作ること

2010年5月2日

1年半くらい前(2008年9月)から、職場の同僚や、翻訳学校に行った仲間たちからマクロ作りを依頼されることが多くなってきました。

また、ブログで知り合った方からもいろんなヒントをいただいております。

誰かのためにマクロを作ることは、思った以上に難しい点があって、いい勉強になりました。

何が難しいのかというと、自分が作ったマクロを自分で使う場合には、マクロを使う上での「暗黙の了解」を自分では理解しています。

たとえば、「このマクロを実行するとき、カーソルが文字列を選択していてはいけない」とか「このマクロは日本語を検索するためのものなので、英文ファイルを閉じて、必ず日本語ファイルを開いていなければならない」とか。

これが他の人が使うことを想定すると、案外フェールセーフ(想定外の事態への対応)を意識しなければならなくなるので大変になります。

特に、所定の記載を変換したり削除するマクロの場合は、大変神経を使います。

あまりにも他の人の誤動作を意識しすぎると、無駄な条件設定が増えてきて複雑になりすぎます。

このあたりのバランスが必要だと思います。

実際に、他の人に使ってもらうことを意識して、ブログにマクロを掲載しはじめてからは、自分のマクロの作るときの視点が洗練されてきているようにも思えるので、いいことだと思います。

上記のようなちょっとマゾ的な喜び以外に、具体的にすごくうれしいことがあります。

それは、

  1.   いいマクロを作れば喜んでもらえる
  2.   他の人の発想に触れることが出来る
  3.   自分の発想の限界を超えられる

につきます。

1.いいマクロを作れば喜んでもらえる

については、そのまんまです。

自分のちょっとした知識が他の人に役立つことを直接実感できるという意味で、マクロ作りはやめられませんね。

大人になると、あんまりほめてもらえる機会もないし、こういうところで喜んでもらったりするのは自分の心の栄養になります。

(別に栄養不足というわけではありませんが)

2.他の人の発想に触れることが出来る

については、他の人の仕事上の思考プロセスに触れることが出来るのでうれしいです。

こんなことは普段めぐり合えない機会ですね。

たとえば、翻訳作業はかなり属人的なスキルを使うと思います。

その翻訳を支援するマクロを作るということは、その思考や作業をマクロという見える形にするということです。

よって、誰かがマクロ作りを依頼してきた場合、その人の考え方をそのまま吸収できるというわけです。

逆に、正確に依頼者の思考を理解しないと、希望通りのものができませんね。

で、ここでいただいた思考パターンも出来上がったマクロも僕が使えるわけですから、なかなか都合のいい「学びの仕組み」ができあがってるわけです。

3.自分の発想の限界を超えられる

ですが、2にちょっと近いです。

依頼する方々は、案外気楽にすごい要求(悪い意味ではなくて、僕の実力を超えている要求という意味)をしてきたりしますから、自分の発想の限界を軽くこえることができます。

たとえば、「『2008/10/4』としてテンキーで入力するけど、『2008年10月4日』と所定の表に記入にしてほしい」とか、「ネットから自動で情報がとれたらいいんだど。。。。」とか、自分でも考えたことがない贅沢(?)な要求をいくつもいただいております。

こういう機能は、自分では発想しないです。

そもそもできるかどうかわからないので、自分で発想のブレーキをしてしまっているような状態だと思っています。

依頼を受けるまでは、エクセルがネットに接続できるなんて夢にも思っていませんでした。

だから、上記のような(初心者の僕にとっては)無茶な課題を設定してくれる仲間のおかげで、自分の成長の幅が大きくなっていると思います。

こうやっていただいた要求から学んだことは、自分のマクロの作成に必ず生かせますから、無駄はありません。

あと、秘密ですが、そういう無茶な課題を出してくれる仲間には、60点くらいの出来のマクロを仮納品して、バグ探しを意図的に手伝ってもらったりしています。

-読み物
-