Excel VBA案件のススメ 

#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系に比べて案件数が少ない

という点が、大きいからです。

ただ、「月数万円を稼ぐ」という目的であれば十分可能ではないかな？と思っております。

※著者は実際年間１００万前後はVBA案件で稼がせて頂いております。
　お小遣いとしては美味しいです。


***

# 提案のコツ

「安い金額で受けるエンジニアが多い」のは事実ですが

きちんと正規の単価で、案件へ提案するようにしてください。

「なぜ、それだけの金額で提案するのか？」の根拠を示すことが出来れば

理解のあるクライアント様であれば、きちんと信頼して頂けます。発注頂けます。

そういったクライアント様は大事にしたいですね。

提案金額の測り方としては、クライアント様の予算にもよりますが

　**あなたの時間給　×　制作時間**

もしくは

　**事務員さんの予測時給　×　削減出来る時間　×　数カ月分**

で測ることが多いです。

感覚的に、時間削減によるコストが「非常に期待出来る／大きい」場合は後者。

それ以外は、前者を選択しています。

利益率が期待できるので、「後者」を推奨しますが

費用見積もりが容易な「前者」の方が提案しやすいです。


「費用の根拠立て」については

>このソフトウェアを導入することにより、事務員様の作業が日単位で◯時間削減されます。
>月間で◯時間となるため、事務員様の時給が９００円として、◯円分のコストカットが期待できます。
>ソフトウェア費用が◯円ですので、◯ヶ月で費用がペイ出来ます。
>その後、月間◯円のコストカットが純粋に期待できるます。
>また、手作業をソフトウェアにより自動化することで「ミス」も大幅に軽減されます。

といったテンプレで説明をすることが多いです。
もちろん、テンプレと言っても「事実」しかお話しません。

※当然ながら、VBA導入によりお客様の利益とならない提案はしません。

***

# VBA案件事例

※当事例は、実際にあった案件を基に作成されております。もちろんフェイクありです。

【事例１：請求書等書類発行システム】

　　業種：製造業
　　制作時間：５営業日（４０時間）
　　システム導入前の業務内容：
　　　事務作業として、日々、Excelに１注文１行の注文情報を記載。
　　　毎月末に、それらの注文情報を、取引先毎に集計→請求書を発行。
　　導入したシステム：
　　　Excel上で締め年月を選択＋ボタンクリックで
　　　自動で注文情報を集計→請求書を発行するプログラムを
　　　注文情報入力用Excelに導入。


【事例２：簡易的なクロールシステム】
　　※外部連携あり(Internet Explorer)

　　業種：アパレル系ECサイト運営
　　制作時間：２営業日（１６時間）
　　システム導入前の業務内容：
　　　特定ブランドのECサイトから、服の情報を取得し
　　　内容をExcelへ転記。＋参照した商品情報ページURLを一緒に記載。
　　導入したシステム：
　　　ボタンクリックで、Internet Explorerを起動し、該当サイトの情報をクロール。
　　　内容＋URLをExcelへ転機するシステムを新設

【事例３：自動計算プログラム】

　　業種：インフラ系企業
　　制作時間：５営業日（４０時間）
　　システム導入前の業務内容：
　　　送付されてくる各企業のインフラ使用量データを目視し、該当箇所をExcelへ貼り付け
　　　その後、企業毎に設定された単価を基にインフラ使用料金をExcel関数を用いて手動算出。
　　導入したシステム：
　　　フォルダ内にインフラ使用量データを格納するようにルール付けし
　　　ボタンクリックで、該当フォルダ内の使用量データを自動で取り込み
　　　Excel内に設定した「企業別単価シート」の情報を参照しながら
　　　企業毎の資料料金を自動算出するシステムを新設

【事例４：CSV→帳票変換システム】
　　※外部連携あり(Java言語作バッチ)

　　業種：ECサイト運営
　　制作時間：３営業日（２４時間）
　　システム導入前の業務内容：
　　　特定の商品が売れた際、該当商品の梱包＋発送する手配を進めながら
　　　別途、仕入先のメーカーへ送付する帳票を手動で作成＋送付。
　　導入したシステム：
　　　帳票作成を行うバッチ(プログラム)をJava言語にて作成。
　　　Excelにて、ECサイトの受注データを取り込めるようにし
　　　「帳票の発行を必要とする商品」を「自動で識別」出来る機能を導入。
　　　ボタンクリックで、Javaで作成されたバッチを実行させ
　　　該当商品の帳票が発行されるようなシステムを新設。

#最後に

最後までお読み頂き感謝しております。

当記事は、私がフォローさせて頂いているプログラミング初学者の方向けに
私の実体験ベースで「Excel VBA案件の事実」を伝えるために記述した内容となっております。

「Excel VBA」ってWEBプログラマーさんから見たら「クソ言語」的なポジションで
扱われることが多いのですが、私はそう思っていなくて

「VBAの真価が発揮されるところではガンガン使うべき」と思っております。

改めまして、当記事を読んで頂けた皆様に感謝しております。