エクセルVBAで何ができるのかについて解説する。物流系在庫調査の例
結論 エクセル内の操作はすべて自動化ができる。
この記事は、「エクセルVBAって何ができるのか?」という疑問にお答えするものです。
私の肩書は公務員で「10年間物流系事務職」として働いてきました。
仕事をする上でエクセルを多用してきました。
慣れてくると何度もする同じ作業が煩わしいと感じ自動でできないかと考えました。
自動化できると言っても、職場の環境、職種によって必要になる処理は違うと思います。この記事では「物流系の事務ではVBAを使ってこんなことをした」ということを紹介します。同職種の方中心に参考になれば幸いです。
在庫調査を改善した例
毎日のように関係会社から在庫調査の電話があり、電話をしながらノートパソコンから番号を入力して在庫を調べることが日常の職場でした。
しかしその頻度が多すぎて耳が痛くなるほどでした。これはやり方を見直さなければと思い改善しました。
従来のやり方
・件数が少ない場合は電話
・件数が多い場合はエクセルにまとめてメールかFAX
今回の改善のポイントは件数が多い場合の処理で「1件1件調べる→まとめて調べる」にしたことです。
エクセルにまとめるとありますが、結局はノートパソコンから1件1件調べたものをエクセルに書込みその情報をFAXで送るというやり方でした。非常に煩わしい。
改善した方法
・毎朝在庫数データをテキスト形式でサーバから抽出しておく。
・在庫DBエクセルにテキストデータを取り込む。(朝一の日課)
(テキストデータをもとに作ったデータ)
・在庫調査の電話が来たら、番号を在庫調査エクセルに打込み、在庫DBエクセルの
データを抽出する。
このやり方だと、端末から1件1件調査してそれをエクセルに書込むといった作業は必要なくなる。在庫調査エクセルの番号から在庫DBエクセルのデータを読取るという仕組みを作成した。今回はほぼリアルタイムの在庫数なのでアバウトに知りたいという要望に応えており、詳細に知りたい場合はテキストデータを抽出しなおして処理してました。
関連会社の反応が変化
今まで時間のかかっていた在庫調査がもう終わったのですか?と驚きの反応をいただくほどでした。件数が多いほど処理時間を短縮できるというものです。
この時はすこしうれしくなったのを覚えています。
VBAで自分も楽できて、相手も早く処理してうれしくなるというWinWinな結果となりました。
仕組みのまとめ
準備したものは3つ
1 在庫調査用エクセル
2 在庫DBエクセル
3 全在庫テキストデータ
社内のシステム上の制約はあるかと思いますが、全データが取れるなら(100万件以下{エクセルの行数の限界は考慮しておく})こういうやりかたもできます。
在庫DBエクセルにデータを準備しておく。在庫調査がきたら、番号を聞いて在庫調査用エクセルに入力。マクロ実行(SQL分で在庫データを抽出)。数分で完了です。