10
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

#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の真価が発揮されるところではガンガン使うべき」と思っております。

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

10
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?