#Excel VBA案件のススメ
##はじめに
企業の事務処理で活躍するソフトウェア「Microsoft Excel」
おそらく大半の企業で、利用されている表計算ソフトウェアです。
この「Microsoft Excel」では、「VBA」と呼ばれるプログラミング言語を用いて
プログラムを作ることが出来ます。
####[Tips]
・同様にWord、Access等でもVBAが使えるため、区別して「Excel VBA」と呼ばれることもあります。
・お客様は「マクロ」と呼ぶことが多いので、心の中では「VBAで出来たプログラム」と思いつつ
お客様には「マクロ」という言葉を使って説明する方が伝わりやすい場合があります。
※当記事では、Excel VBAの事をVBAと表記させて頂きます。
VBAでは、どういう事が出来るのか?
Excelで出来る操作は大体出来る。という理解でOKです。
基本的には「手間な作業を、ボタン一つで自動化する」ために、VBAが用いられる事が多いです。
例えば
・毎日Excelで作っている日報を一覧表に変換
・毎月作っている上司への売上報告書の作成を、請求書から作成
といった作業を、VBAにより自動化することが可能です。
また、Excelの作業だけではなく
・Internet Explorerを使ってWEBサイトの情報取得
・PHPやJavaで作られたプログラムを実行
・コマンドプロンプトで作成されたバッチファイルを実行
といった、他のシステム/ソフトウェアとの簡易的な連携も可能です。
どういう時に提案するのか?
一番シンプルなのは
企業内でExcelを使って行われている事務作業の負荷軽減として提案するケース
です。
上記に踏まえ
・クライアント様がPCやWEBシステムに疎い(事務で使っているソフトくらいしか使えない)
・サーバー費用等、ランニングコストが掛けられない
・大規模なシステムが不要
・まずは簡単なソフトを導入し、試験的に費用対効果を計測したい
といった場合、VBAによるシステム提案をさせて頂くケースが多いです。
Excel VBAを使うメリット・デメリット
VBAにも、メリットとデメリットがあります。
理解した上で、「メリットが活かせる」シーンでVBAを提案しましょう。
【メリット】
・システム導入が容易
→多くのPCにはExcelが入っているため、導入が容易
・Excelへの出力では、ほぼ無双
・UIが「見慣れたUI」なため、ある種ユーザーフレンドリー
・メソッドや変数等を「日本語で記載」可能→保守面で楽な場合がある
・マクロの記録で、VBAの実装が出来るため、プログラミング言語としては、比較的簡単
【デメリット】
・Excel未導入PCへ導入するにはライセンス費用が必要
・Version違いによる動作差異が多少有り
・大規模開発には不向き
・処理速度が早くない
・ソフトウェアの配布が必要
・(配布せず、共有して利用する場合)複数人同時処理には弱い
・開発費が安い(参入障壁が低いため)
正直、稼げるか?
正直に言うと「本業でVBA一本で稼ぐのは難しい」と思っています。
というのも
・参入障壁が低い=安い金額で受けるエンジニアが多い
・クラウドソーシングでは、WEB系に比べて案件数が少ない
という点が、大きいからです。
ただ、「月数万円を稼ぐ」という目的であれば十分可能ではないかな?と思っております。
※著者は実際年間100万前後はVBA案件で稼がせて頂いております。
お小遣いとしては美味しいです。
提案のコツ
「安い金額で受けるエンジニアが多い」のは事実ですが
きちんと正規の単価で、案件へ提案するようにしてください。
「なぜ、それだけの金額で提案するのか?」の根拠を示すことが出来れば
理解のあるクライアント様であれば、きちんと信頼して頂けます。発注頂けます。
そういったクライアント様は大事にしたいですね。
提案金額の測り方としては、クライアント様の予算にもよりますが
あなたの時間給 × 制作時間
もしくは
事務員さんの予測時給 × 削減出来る時間 × 数カ月分
で測ることが多いです。
感覚的に、時間削減によるコストが「非常に期待出来る/大きい」場合は後者。
それ以外は、前者を選択しています。
利益率が期待できるので、「後者」を推奨しますが
費用見積もりが容易な「前者」の方が提案しやすいです。
「費用の根拠立て」については
このソフトウェアを導入することにより、事務員様の作業が日単位で◯時間削減されます。
月間で◯時間となるため、事務員様の時給が900円として、◯円分のコストカットが期待できます。
ソフトウェア費用が◯円ですので、◯ヶ月で費用がペイ出来ます。
その後、月間◯円のコストカットが純粋に期待できるます。
また、手作業をソフトウェアにより自動化することで「ミス」も大幅に軽減されます。
といったテンプレで説明をすることが多いです。
もちろん、テンプレと言っても「事実」しかお話しません。
※当然ながら、VBA導入によりお客様の利益とならない提案はしません。
VBA案件事例
※当事例は、実際にあった案件を基に作成されております。もちろんフェイクありです。
【事例1:請求書等書類発行システム】
業種:製造業
制作時間:5営業日(40時間)
システム導入前の業務内容:
事務作業として、日々、Excelに1注文1行の注文情報を記載。
毎月末に、それらの注文情報を、取引先毎に集計→請求書を発行。
導入したシステム:
Excel上で締め年月を選択+ボタンクリックで
自動で注文情報を集計→請求書を発行するプログラムを
注文情報入力用Excelに導入。
【事例2:簡易的なクロールシステム】
※外部連携あり(Internet Explorer)
業種:アパレル系ECサイト運営
制作時間:2営業日(16時間)
システム導入前の業務内容:
特定ブランドのECサイトから、服の情報を取得し
内容をExcelへ転記。+参照した商品情報ページURLを一緒に記載。
導入したシステム:
ボタンクリックで、Internet Explorerを起動し、該当サイトの情報をクロール。
内容+URLをExcelへ転機するシステムを新設
【事例3:自動計算プログラム】
業種:インフラ系企業
制作時間:5営業日(40時間)
システム導入前の業務内容:
送付されてくる各企業のインフラ使用量データを目視し、該当箇所をExcelへ貼り付け
その後、企業毎に設定された単価を基にインフラ使用料金をExcel関数を用いて手動算出。
導入したシステム:
フォルダ内にインフラ使用量データを格納するようにルール付けし
ボタンクリックで、該当フォルダ内の使用量データを自動で取り込み
Excel内に設定した「企業別単価シート」の情報を参照しながら
企業毎の資料料金を自動算出するシステムを新設
【事例4:CSV→帳票変換システム】
※外部連携あり(Java言語作バッチ)
業種:ECサイト運営
制作時間:3営業日(24時間)
システム導入前の業務内容:
特定の商品が売れた際、該当商品の梱包+発送する手配を進めながら
別途、仕入先のメーカーへ送付する帳票を手動で作成+送付。
導入したシステム:
帳票作成を行うバッチ(プログラム)をJava言語にて作成。
Excelにて、ECサイトの受注データを取り込めるようにし
「帳票の発行を必要とする商品」を「自動で識別」出来る機能を導入。
ボタンクリックで、Javaで作成されたバッチを実行させ
該当商品の帳票が発行されるようなシステムを新設。
#最後に
最後までお読み頂き感謝しております。
当記事は、私がフォローさせて頂いているプログラミング初学者の方向けに
私の実体験ベースで「Excel VBA案件の事実」を伝えるために記述した内容となっております。
「Excel VBA」ってWEBプログラマーさんから見たら「クソ言語」的なポジションで
扱われることが多いのですが、私はそう思っていなくて
「VBAの真価が発揮されるところではガンガン使うべき」と思っております。
改めまして、当記事を読んで頂けた皆様に感謝しております。