もりさんのプログラミング手帳

教えることは、二度学ぶこと

スポンサーリンク

『その作業マクロ化しようよ』VS『手作業でいいじゃん』論争

Excel使いのオフィスワーカーがときどき直面する「マクロ化 VS 手作業」論争について、書いてみます。
f:id:excel-accounting:20180517225937p:plain:w500

実例

これは私がVBAの面白さに目覚め、会社の経理業務を片っ端からマクロ化していた時期の話です。

自分『先輩、この作業マクロ化しました!』

先輩『へー、すごいね!でもそのくらいの作業なら、別に手作業でよくない?』

自分『 (´・ω・`)ショボーン』

f:id:excel-accounting:20180517232429p:plain:w150


言われてみればそのはず、作業自体はとても簡単で頻度も少ないものでした。

  • 作業頻度:週に1回
  • 手動での作業時間:約1分
  • マクロでの作業時間:数秒(ボタンクリックのみ)
  • マクロ開発に費やした時間:1時間


例えば、

『手作業で1時間かかってた日次作業をマクロで3分でできるようにしました。その開発コストは10分でした。』

であれば誰が聞いても納得なのですがね。

開発の元をとれるか?

せっかくなので「この作業を何回やれば開発費の元がとれるのか」を、

損益分岐点(固定費・変動費)の概念で計算してみました。(単位:分)


日商簿記2級の工業簿記の範囲ですね。
損益分岐点=固定費 ÷(1-変動比率)

作業方法 固定費【開発費】 変動費【1回あたりの作業時間】
マクロ 60 (分) 0.05 (分)(=3秒)
手作業 なし 1 (分)



X回作業した時の累積作業時間

  • マクロ→60+0.05X (分)
  • 手作業→X (分)

【問い】:X > 60+0.05X になるXは?

X - 0.05X > 60
→ 0.95X > 60
→ X > 60/0.95
→ X > 63.15789474・・・
→ X = 64

64回目以降の作業で、マクロの累積作業時間が手作業を下回る

Excelでグラフにするとこんな感じです。
f:id:excel-accounting:20180401221257p:plain

1年間は52週間あり、週次の作業なので、
1年と12週 → 約1年3か月後に開発コストの「元がとれる」計算になります。

元をとるまでに時間はかかりますが、長期的な観点でみれば、マクロ化しちゃってよかったなと思ってます。

マクロ化するか否かの見極めポイント

  • 〇か月以内(〇年以内)に元がとれるならマクロ化すべき
  • 手作業だと〇時間で、開発コストが〇時間以内ならマクロ化すべき

という定量的な指標はないと思っています。

(職種や作業内容によるので一概には言えないですよね。)


私の見極めポイントはこのような観点です。

①その作業は人間がやる必要があるか
(人間でなければできない作業なのか)

②その単調作業をしている自分が虚しくないか
f:id:excel-accounting:20180518215427p:plain:w150

③そのマクロを作ることで自身の経験値が上がるか
(時間の自己投資になるか)

上述の64回目に元がとれるマクロも、「自身の経験値が上がるか」という観点でみても良かったかなと思います。

VBAを勉強中の人は、時間の許す限りに片っ端からマクロ化してみることで経験値(スキル)をあげていくという考え方もできますね。

イレギュラーな開発の話

決算作業でこんな事例がありました。

  • 作業内容:「ある資料」に基づいて会計システムに投入する仕訳を作成
  • 作業頻度:半期(半年)に一度
  • 手作業の時間:1時間

これだけ見ると、「まぁ手作業でいいじゃん」って思いますよね?

でも、そこにはこんな事情(制約)がありました。

  • 第X営業日の14時までに会計システムに投入しなければならない。
  • 仕訳作成に必要な「資料」は他部署から入手するもので、その締切は第X営業日の13時。

つまり、締切ギリギリに届いた場合、間に合わない可能性なんですね。
(締切通りにもらえるかもわからない)

結果として、この作業を「マクロ化」しました。
半年に1度・1時間の作業ではあるれど、決算を遅延なく実施するためには仕方なかったんですね。

(幸いにも、他部署からもらう「資料」のフォーマットはあらかじめ確認できたので、事前開発の時間はありました。)


決算経験のある方なら共感してくれると思うのですが、決算ピーク時の作業スケジュール、キツキツですよね。

各担当者の作業の前提後続関係が密に詰まってて、一か所でも遅延すると後続処理がバタバタと遅れていきます。

f:id:excel-accounting:20180517233310p:plain:w200

そんな訳で、頻度は少なくても時間に追われる作業の場合は、当日の精神的負担を減らすためにも、マクロ化できるものはしておくことをオススメします。

最後に注意点

時が経てば、

  • インプットデータ、アウトプットデータの形式が変化してマクロが動作しない
  • 会計基準が変わって計算ロジックの修正が必要になった
  • その業務自体が廃止になった
  • マクロをメンテナンスできる人がいなくなった(!)

などなど、想定外の事象が多々あるので、メリットデメリットを考慮した上で開発しましょう。

そして、決算時期が近付いたら、手順のリハーサルもかねてマクロの仕様を再確認しましょう。

スポンサーリンク