初心者のためのExcelマクロ超入門(絶対できるVBA開発)

マクロがまったくわからない人のためにエクセルマクロやVBAについてできるだけわかりやすく書いています。Twitter:@shuhhohhey

初心者のためのExcel エクセルマクロVBA入門-実践:発注書印刷マクロ(序章)

今回からは、発注書アプリというものを作ってみましょう!色々と学んで来た皆さんです。きっとできると信じています。目的的にはユーザーフォームの使い方を学ぶのと、エクセルのマクロでアプリのようなものを作ることで、マクロの色々な機能を学びましょう!ということです。

アプリを作るにはアプリが必要な状況がある!

さて、A社はいろんな商品を扱っているネットショップです。たくさんの仕入れ先から安い商品を仕入れてインターネットで売っています。あなたはそこの社員です。全部20人くらいの小さい会社。発注は担当の人が在庫表や実際の商品の数を見ながら、少なくなったら発注書を書いて各仕入れ先へ発注書をファックスします。

ですが、そろそろ、限界です。扱う商品は1000を超え、取引している会社も100を超えてきました。毎日1000以上の商品をエクセルの在庫表で管理して、数によって関数を埋め込んで発注が必要なら発注する。なんてことをしています。毎日の在庫表はネットからCSVファイルをダウンロードして、それを加工しています。

なんて状況です。(フィクションです。)

いつも発注処理にまる1日担当者がかかっています。発注は3日に1回、もう大変です。しかもその担当者は他にも仕事をしています。3日1度は戦争のように忙しい日々。。。

そこであなたは立ち上がりました!!

  • 自動で在庫を取り込んで。。。
  • 発注が必要な商品を自動で判定し。。。
  • 発注書を自動で作って印刷する。。


そんなマクロがあればいいじゃないか!!というわけで早速、提案してみます。


「こんなマクロがあったらいいと思うんだけど・・・」

担当者:「うーん・・・そしたら自動で発注書が出てくるとなると、必要ないものまで発注書がでちゃうよね?それは困るんだんだよね。。。そうだ!発注が必要なリストだけあって、自分で選んで発注書が作れるといいな!発注する数も自分で設定したいし、ファックスまで自動でしてくれると助かるんだけどなぁ・・・あ、後商品は取引先ごとに分かれてると便利なんだけど・・・」

要望を整理しよう!

おぉ・・・大変です。いろいろな希望が出てきてしまいました。全部かなえられるかわかりませんが、ちょっと整理しましょう。

  • 自動でCSV在庫表を取込たい
  • 発注が必要な商品リストが見たい。
  • 商品は取引先ごとに見たい
  • 自分で数を入力して発注書を印刷したい
  • できればFAXも自動でしたい

こんな感じでしょうか?

小さなツールを大きくしよう


まず、全部やるというのではなくて、ちょっとずつやっていくようにしましょう。1つ1つの機能を合わせて、後でまとめてしまえばいいのです。上に書いた要望を1つ1つ実現していく感じでやってみましょう!

アプリを設計してみよう。


どんな感じのアプリにしたらいいのかな?ということを考えます。まぁ元の表から想像するようにしましょう。元の在庫表を見て見ましょう!(フィクションです)

f:id:drumer2sh:20140401101808p:plain


こんな感じの在庫表です。担当者さんはこれで、必要在庫数を下回った在庫の商品を発注します。発注量は売れ行きを決めているので担当者が独自に決定したいわけですね。

さらに発注先の情報ってありますか?

と聞くと、ありました。どうやら別のエクセルファイルに会社の住所とかの情報管理しているようです。それがこちら。


f:id:drumer2sh:20140401101818p:plain


なるほど、これで後は発注書のテンプレートに住所とかそういうのを当てはめておいて、印刷してFAXしたりしているということですね。これだけの材料で、何とかできないか?を考えてみます。マクロを使って・・・

  • 発注が必要な商品を抜きだして・・・
  • その商品を仕入れ会社ごとにまとめて・・・
  • 表示された商品を選択して数字を入れて・・・
  • 印刷ボタンを押したら、発注書がウィーンと印刷される。。。

浮かんできました。こんな感じのアプリがあればとても便利そうですね。となると、もっと必要なのが在庫表の読み込みですね。ネットショップサイトからダウンロードした在庫データを読み込んで、それから発注が始まるはずです。。。となると・・・

  • ボタンを押すと在庫表を読み込む
  • ボタンを押すと発注が必要な商品を会社ごとにまとめてくれる
  • 会社ごとに発注が必要な商品を選んで数字を入れることができるような画面
  • 印刷ボタンを押すと発注書が印刷される

なんてことができたら幸せではありませんか!


ということで、こんなやつ。作ってみましょう!!とあなたは腕を鳴らしました。

こんな感じで作っていきます。

このように、まず「時間がかかる作業を探して」そのあと「それをもっと短時間で出来ないか?」を考えて、さらに「マクロで自動化できないか?」を考えていくわけです。後はやっている作業によって、それを機能でわけてしまいます。後はこの機能を満たすようなマクロを作成して、がっちゃんこすれば、アプリの完成です!

本当はもっとがっちりと設計したり、作業の洗い出しに漏れがないか?などを調べたりと、色々とこの工程が時間がかかるし、大変ですが、一番大切で重要なところなのです。

これが、間違っていると・・・できたツールやアプリを使う人が見て・・・



( ゚д゚) 思ってたのとチガウ!!


となってしまいます。ブログではとても簡単にやっていますが、実際は数週間かけてこれやるんです。皆さんも挑戦する時はしっかりとそのツールやアプリを使う人と話をして、使う人の気持ちを理解して、時には使う人よりもその作業に詳しくなるように頑張りましょう!


今日はここまで!

かしこ