OKWaveで最近話題のトピックから。
マクロを組んで作業するのは実力ではないですか?
私の職業は一般事務(派遣)ですが少しVBAがわかるのでルーチン化できるものはマクロを組んでいます。
そうすることによってエクセルで1時間かかる作業が1分で終わることがあります。なので職場では「仕事が早い、仕事ができる」と評価されることがありますが先日先輩に怒られました。
内容は
・VBAを使うのはずるい
・それは実力ではない
・仕事が早いというのは同じ環境でどれだけ間違いがなく効率よく作業ができるかだ。
・マクロを組むのはズルとしているのを同じ
と。確かに手作業で行なえば周りの人と同じくらいの速さなので周りと同じ環境であれば(マクロを組まなければ)仕事が早いとは言えないかもしれません。
しかし業務をどう効率よくして作業をするかを考え実践するのも仕事のうちだと思うのですが私の考えは間違ってますか?
入力ミスもチェックするコードを書いたので、ミスはありません。「マクロを組んだ方が仕事が早くなるがそれが仕事ができる人には繋がらない」のでしょうか?
職場にはマクロを組めるのは私しかいません。
仕事が早く終わったからって遊んでるわけではないし時間が余ればさらに効率化できないかを考えたりしています。
IT方面で仕事している職業人として、とても気になるトピックです。
VBAを使うからずるい、実力ではない、といったところは当然「大いなる誤り」でしょう。VBAを「使える」ところまで含めて実力ですし、マクロを組むのも「マクロを組むことができる」という同じ環境を与えられているからこその評価です。
彼/彼女一人がExcelを与えられている環境ならともかく、Excelというポテンシャルの高い環境をどう生かし切れるか、生かし切っているかという点では、VBAを使って仕事をするのは能力でこそあれ、ズルでは決してありません。
一方、仕事でVBAを使うことには山ほどの懸念があります。以下その一部を例示してみます。
- 果たして次の世代へ引き継げるのか?
- VBAの環境が失われるときに、果たして次の環境へ移植できるのか?
- 実際、MacOSX向けのOffice2008ではVBAが放棄されるという事態が発生しました。
VBAスキルは「そこら中に転がっている」ものではないですし、たとえスキルのある人が相手であっても「ある人が書いたアプリケーションを他の人に引き継ぐ」のは大変な作業です。その工数が必要なこと、作業量が必要なことまでは、なかなか「経営レベルの人は」理解できないのが現実です。
VBAのスキルを持っているといえども、VBAのコードを「他の言語に」引き継ぐのはもっと大変なことです。いざそれが必要になったとき、可能なのでしょうか?もちろん「VBAの存在しない時代に戻る」という選択肢もありますが、たとえばこんな懸念があります。
- 一部の業務ロジックがVBAにしか残されていない状態になる
- VBAを用いて効率化された業務ペースを、別言語に切り替えることで一時的に落とす/VBAの使用を止めるために長期的に落とすことが許されるのかどうか
- 移植時にエンバグ・意識されざるデバッグを起こしてしまい、移植前と出力結果が異なる懸念
さらには、最も深刻な問題がVBAのバグ。
VBAのスクリプトに「バグがない」「適切な入力を与えたら適切な出力が返る」ことは、誰が保証できるのでしょうか?
経理データの処理にバグが埋もれていると、それが原因になって会計書類に誤りが発生する可能性があります。何よりも怖いのがこの話。入力チェックルーチンを入れたからバグがない、というレベルでは通用しません。「その入力チェックルーチンは誰によってチェックされているのか?」
このあたりを恐れて、なんと「パソコンを使用停止した」会社すら実在するそうです。
しかし、ではバグを恐れてPCを使わない、というのは本当に正しいのか。常識的に考えたら、バグがあるからPCを使わないなんて「ナンセンス」でしょう。そこまでシビアに言ったら、Excelにだってバグがないとは言えません……どころか「Excelは実はバグだらけ」です。統計方面の人は、Excelの統計関数は誰も信じていません(どころか「Excelは使うな」論文が次から次へと提出され、それ自体が学会誌で特集される始末)。
現実的な選択肢としては、すべてを前向きに考えるべきでしょう。余った時間で仕事を進めるよりもちゃんとドキュメントを残し、プログラムが「どう書かれているか」を明確にして、あとで「厳しいレベルのチェックが必要になったときに」チェックに耐えられるようなものを作っておくのです。