マクロ公害のこと
エクセルマクロは敷居が、はっきり言ってあまり高くありません。
エクセルを使っているうちに、サンプルコードを打ち込んでみたりしてマクロの世界に踏み込んだ人は多いはず。
最初のうちは動くのが楽しくていろいろやって見るはずです。
そして、エクセルのマクロの記録機能を使って、「よくわからないけど・・・できる」という使い方をする人が出てきます。
そうです。だれでも書けるんです。マクロが・・・エクセルは。
そして、それはSUMが使えた~!くらいの、エクセルのズブの素人からみれば「神」に見えちゃったりするので、勘違いしやすいのです。
自称「マクロの達人」あるある
- DIM で変数宣言をしない
- Option Explicit などどこ吹く風
- 困ればすぐに、Public変数 を出す
- go to 文 を多用する
- モジュール名が「Module 1・・」「UserForm1 ・・」とかのまま
- Module 1 のなかに Sub が10個とかある
- マクロの記録を、よくわからないままそのままコピペする
- マクロ記録をそのまま使うため、コードの意味が自分でもわからずにマクロを作る
- 考えずに試行錯誤を繰り返すので、マクロを一つ作るにも膨大な時間がかかる
- 変数(特にカウンタ)に i だとか j だとか k だとかを好んで使う
- そのときになんとか動作すれば良いと思っている
- コードの中にコメントを残さない
- 後任が困っても知ったこっちゃない むしろ自分が引き立つと考えているフシがある
- 操作マニュアルやヘルプって何?いるの?
- 同じ体裁の書類でも、書類ごとにワークシートを作るため、同じ体裁のシートが 40 とかある
- 入力や操作の際に、本人も忘れてしまいそうな、なぞの規則がある
- 入力や操作に例外を認めない
- 本人はスゴイ(エクセルのズブの素人からみればそう見える)と勘違いしているので、後任に自慢しに来る
- この「あるある」を読んでも、絶対に自分のことだとは思わない
- ダニング・クルーガー効果発揮しまくり
まだまだありそうですが・・・
生産性0
まあ、そんな低レベルでも自分だけで使っているうちはいいのですが・・・・。
悲劇は、それを職場の中のシステムの一部に無理やり組み込んだときから始まります。
後継者やそれを操作する人は、マクロを動かすためのわけのわからない彼独自の規則(作った本人も往々にして忘れている)があるのを知ります。たとえば、このセルに数値を入れたらこちらのセルは必ず空白にする・・・とか、ここから上のセルにはなにも入れるな・・・自動化すべき手作業が突然あったりとか。
コードを見ても、変数も宣言されてなければ、コメントもなし、コードを読むも、読む時間がかかりすぎて、その間に自分でもっといいコードがかけそうです。
次の担当者がある程度の技量のある人だといいのですが、そうでない、再び「勘違い野郎」だった場合、あらたに「勘違いマクロ」を生み出します。
マクロを作るのも、論理的に考えずに試行錯誤でやるので、膨大な時間を要します。
そして、ふたたび「一般に使えない、ヘンテコな」マクロを組織のシステムに使おうとします。
よくあるのが、これの連鎖なのです。結局多大な時間を担当者が変わるごとに要しているので、生産性は全く上がっていません。ついでに、マニュアルやヘルプなどはもちろんありません。
これを私は、マクロ公害と呼んでいます。