VBA
業務改善
開発日記
Excelへの転記作業を自動化|CSVとVBAで資材管理表を更新した事例
ぴーす君
毎日のデータ転記に、多くの時間がかかっていた
ある企業では、複数の取引先から届く発注関連のPDFを印刷し、紙面を確認しながらExcelの管理表を更新していました。
管理対象は数百点にのぼり、担当者は紙に記載された情報を一つずつExcelへ手入力していました。この作業には毎日数時間かかっており、担当者にとって大きな負担になっていました。
一方、発注関連の情報はCSV形式のデータとしても利用できる状態でした。
そこで、既存のCSVデータを活用し、Excel管理表の更新作業を自動化することにしました。

- 毎日のデータ転記に、多くの時間がかかっていた
- CSVを取り込むだけでは、Excel管理表を更新できない
- 1. 更新先が分からない
- 2. 更新に必要な日付情報が不足している
- 3. 更新箇所が多く、結果の確認が大変
- 4. 誤操作や元データの変更に備える必要がある
- 4つの課題を解決するために、仕組みを設計した
- 1. マスタを使って更新先を特定する
- 2. 設定シートで必要な情報を補う
- 3. 更新結果を一覧で確認できるようにする
- 4. 更新前にバックアップを作成する
- ツールの処理フロー
- Step 1:CSVの取り込み
- Step 2:更新先の紐づけ
- Step 3:日付ごとに更新内容を集約
- Step 4:バックアップを作成して在庫表を更新
- 毎日数時間の作業が、数分で完了する仕組みに
- これまで積み重ねてきた業務知識を、仕組みにする
CSVを取り込むだけでは、Excel管理表を更新できない
CSVデータがあれば、紙を見ながら手入力する作業を減らせそうです。
しかし、実際の業務では、CSVを読み込むだけですべての処理が完了するわけではありません。
既存の管理表を適切に更新するためには、いくつかの課題を解決する必要がありました。
1. 更新先が分からない
CSVに記載された品物の情報を、Excel管理表のどのシート・行に反映すればよいのか。
管理表には複数の更新先があるため、取り込んだ情報と更新先を対応付ける必要がありました。
2. 更新に必要な日付情報が不足している
CSVには、管理表の更新に必要な情報がすべて含まれているとは限りません。
今回も、CSVだけでは対象となる日付や期間を判断できないという課題がありました。
3. 更新箇所が多く、結果の確認が大変
数百点の情報を一度に更新すると、どの箇所が変更されたのかを確認するだけでも時間がかかります。
自動更新できても、結果を確認するために手間がかかってしまっては、十分な業務改善とはいえません。
4. 誤操作や元データの変更に備える必要がある
取り込むファイルを間違えたり、更新処理によって既存の管理情報を上書きしたりするリスクも考慮する必要があります。
作業を自動化するだけでなく、万が一のときに備える仕組みも必要でした。
4つの課題を解決するために、仕組みを設計した
それぞれの課題に対し、実際の業務で使いやすいように、次の仕組みを用意しました。
1. マスタを使って更新先を特定する
品物の情報と、更新する管理表・更新先を対応付けるマスタを用意しました。
これにより、取り込んだデータをもとに、どの管理表のどこを更新すればよいのかを判断できるようにしました。
2. 設定シートで必要な情報を補う
CSVに含まれていない日付情報については、設定シートから指定できるようにしました。
データに不足している情報を別途設定することで、対象となる日付や期間に応じた処理を行えるようにしました。
3. 更新結果を一覧で確認できるようにする
更新した箇所を探し回らなくても済むように、更新結果を一覧で出力する仕組みを用意しました。
さらに、一覧から該当する行やセルへ移動できるリンクを設け、更新内容を確認しやすくしました。
4. 更新前にバックアップを作成する
管理表を更新する前に、更新対象となるファイルのバックアップを作成するようにしました。
これにより、万が一の操作ミスや予期しない問題が発生した場合にも、更新前の状態に戻せるように備えました。

ツールの処理フロー
これらの仕組みを組み合わせ、CSVの取り込みからExcel管理表の更新までを自動化しました。
処理は、次の4つのステップで進みます。
Step 1:CSVの取り込み
発注先やデータ形式の異なるCSVを、種類に応じて取り込みます。
Step 2:更新先の紐づけ
取り込んだ品物の情報と、更新する管理表・更新先をマスタで対応付けます。
Step 3:日付ごとに更新内容を集約
日付ごとに更新先と更新数を整理し、同じ日に扱う資材を集約します。
Step 4:バックアップを作成して在庫表を更新
更新前の管理表をバックアップしたうえで、集約したデータをもとにExcel管理表を更新します。
このように、単にCSVを読み込むだけでなく、更新先の特定やデータの整理、バックアップまでを一連の処理として組み込みました。

毎日数時間の作業が、数分で完了する仕組みに
ツールの導入によって、これまで毎日数時間かかっていた転記作業は、数分で更新できるようになりました。
また、毎日行っていた作業を、必要なタイミングでまとめて実施できるようになり、担当者の負担も軽減されました。
お客様からは、「あの目が潰れそうな作業から解放された!」という声もいただきました。
さらに、今後データ形式などに変更があった場合にも、変更点を確認したうえでツールを修正することで、対応しやすい仕組みになりました。
これまで積み重ねてきた業務知識を、仕組みにする
CSVのデータをExcelに転記するだけなら、簡単な作業に見えるかもしれません。
しかし、実際の業務では、更新先の特定や集計方法など、さまざまな条件やルールに沿って処理を行っています。今回のツールも、そうした業務上のルールを一つずつ整理することで、ようやく自動化を実現できました。
これらのルールは、担当者の皆様が日々の業務を通じて身につけ、積み重ねてきた知識や経験の結果です。
一方で、担当者が変わるたびに、こうしたルールを一から教える必要があったのではないでしょうか。教える側にも、教わる側にも、大きな負担があったと思います。
そうした背景を考えると、これまで積み重ねてきた業務知識を仕組みに落とし込み、毎日の転記作業を大幅に減らせたことを、本当によかったと感じています。
日々の業務の中で培われてきた知識や経験を、次の担当者にも引き継げる仕組みにする。
業務の自動化には、作業時間を短縮するだけでなく、これまで人が積み重ねてきたものを、形にして残すという価値もあるのだと思います。