集計業務効率化を図るならVBAプログラミングによる自動化がおすすめ

集計業務の手作業にかかる負担には困ったもの。アンケートの回答や売上推移など定型のデータが入ったファイルを集計する業務、対象の件数が増えれば増えるほど、手作業の手間や転記ミスもどんどん増えていきます。そこで考えたいのが、集計の自動化による業務の効率化。Excel VBAをはじめとするさまざまな手法を使って、手作業で行っていた操作を自動化します。自動化することで、ミスの発生や作業の手間を大幅に減らし、時間コストを節約することが可能です。さらに、業務効率化により確保できた時間を有効活用して、業務の品質向上につなげることもできるのをご存じですか?

そこで今回はシステム開発の現場で集計を自動化、業務を効率化したAさんに体験談を伺いました。

集計対象の件数増加で業務の効率化を図ることに

まずは、どういった業務の効率化を図ったのか教えてください

業務の内容としてはテキストファイルの集計業務です。Windowsの環境で、決められたフォルダーに置かれたテキストファイルを開き、定型(テンプレート)で記入されたテキスト情報をExcelのシートに手作業で転記し、一括管理、集計を行っていました。ファイルとExcelの転記処理が終わったファイルを処理前のファイルと混ざらないようにする作業も必要ですし、転記した項目にズレがないかなどの確認も欠かせません。

ファイルの記述内容だけではなく、集計の作業自体もかなり定型化されている業務ですね。それは、自動化が図りやすい業務だったといえますね。

はい。ひとつひとつの作業はサーバーの所定のフォルダーからファイルを開き、セルに順番にデータを入れていくといったような単純作業ですが、手間がかかりミスも誘発されやすい内容です。また、処理する件数が多くなればなるほど、件数増加以上に時間がかかってしまいますそこで、テキストファイルを開き転記するという一連のオペレーションを自動で行うことで業務効率化を図ることを考えました。

業務効率化に用いる手法を検討

具体的には、どのような手法を用いて実現したのですか

RPAの利用、Excel VBA、VBS(スクリプト)またはUNIXサーバーでテキストファイルのデータを読込み、編集しCSV出力するなど、効率化のために用いることのできる手法はいくつか考えられました。その中で、次のような条件を満たすことのできる手法があるか検討しました。

  • Windows+開発はUNIXサーバー上という環境である
  • すでに定型テキストファイルへの記入で運用中のため、記入者のオペレーションをできる限り変更しない
  • 出力ファイルはExcelで、集計対象のファイルは複数のフォルダーにあり、フォルダーは可変である
  • 新規サービスの導入コスト、効率化を実現するまでの時間コストをできるだけかけない

検討の結果、Excel VBAを利用することを選択、もともと集計に使っていたExcelファイルにVBAで自動化のプログラムを追加しました。

業務効率化で上げた効果2点

集計業務の効率化を実現したことによりどういった効果がありましたか

第一に、時間コストの節約です。手作業での転記によるミスがなくなり、確認にかかる時間が大幅に短縮されたこと、転記自体の時間もほぼ0になったことで、集計業務そのものが短時間で済むようになりました。おかげで、それまで単純作業に費やしていた時間を、集計後のデータ分析などに多く当てることができるようになりました。このことにより、集計結果を利用した業務全体の精度・品質が向上したのが、第二にして最大の効果といえると思います。

集計業務効率化の背景

担当されていた集計業務の背景について少し伺ってもよいでしょうか

システム開発現場で、モジュールテストの試験結果票である定型テキストファイルをプログラミング・テスト担当者より受け取り、Excelの管理票のシートに手作業で転記して管理する業務を行っていました。最初は1日数件程度のものでしたが、開発が進むにつれてテスト対象や結果の報告も増え、手作業では時間がかかってしまい、転記ミスの発生の増加も予想されました

システムの開発そのものではないところでのよけいな時間コスト発生は避けたいものですが、かといってもちろん新たな人員を割く余裕もありませんでした。そこで、Excelの管理票に自動でファイルを読込みすることで管理業務を効率化させればよいのではないかと考えました。

自動化する手法にVBAを選んだ理由についてももう少し詳しく聞かせてください 

VBAが、先ほどお話しした条件に特に見合っていたためです。具体的には以下のような利点があります。

    1. すでにテキストファイルでの報告を運用中のため、開発メンバーのオペレーションをできる限り変更しない

Excelファイル1つのオペレーションでファイル読み込みから集計まで可能

    1. 新規サービスの導入コスト、効率化を実現するまでの時間コストをできるだけかけない

マクロ記録の機能を利用することで、まったく一からプログラミングしなくても自動化が図れる

  1. 出力ファイルはExcelで、集計対象のファイルは複数のフォルダーにあり、フォルダーは可変である

FSO(FileSystemObject)の仕組みにより、ファイルやフォルダーの読み込みを柔軟に行うことができ、ファイルを壊す心配がない

VBAによる自動化手順の実際

業務の自動化をどのように進めていったのか教えてください

まずは、一連の業務フロー(流れ)を整理し、どんな処理を行っているのか、自動化できる要素はどこにあるか考えました。

  1. 集計対象のテキストファイルが入ったフォルダーを指定して参照する(手動)
  2. フォルダーを開く
  3. ファイルを開く→開かず読み込みで済む
  4. 決まった語句(項目)の欄とそれに対応する転記内容を見つける
  5. セルに転記する
  6. すべての項目について転記を繰り返す
  7. 転記が終わったらファイルをリネームし、集計済フォルダーに移動
  8. 記入ミス(エラー)があればエラー処理を行う
  9. 次のファイルも続けてここまでの処理を行う

 

この業務ではこのような流れになりました。

その中で、自動でできるものを選んでVBAのプログラムとして置き換えていくわけですね

そうです。1)についてはその都度対象フォルダーが変わるので、Excelのシート上で参照フォルダーを手動で選択するようにしました。次に、2)以降を順に自動で処理するプログラムのコードを書きました。VBAの文法を勉強しながら書いていくのはそれなりに大変でしたが、実際のオペレーションを、VBAのコードひとつずつに置き換えられるくらいていねいに分解して進めていったので、それに当てはまるコードを書いて進めるという形でなんとかなりました。その辺りは、別の言語でのプログラミングを学んだことがあり、基本の考え方がすでにできていたため有利だったと思います。

大きなメリットだった、業務全体の品質向上

最大の効果だという業務全体の品質向上について、もう少し詳しくお話を伺えますか

集計業務を効率化したことにより、システム開発における成果物であるシステムそのものや、テスト報告書の品質が結果的に向上しました。その要因としては次のような点がありました。

  • 担当者名やモジュール名といった、元のテキスト内容そのもののミスを即座に発見することで、報告書になってからの修正をせずに済むようになった
  • バグ発生多発箇所などの分析に時間を割く余裕が生まれ、担当者に注意を促せるようになった

また、当初は帳票への記入を担当者自身で行い、集計・管理を責任者が行うという形で業務を行っており、負担があったそうです。集計業務を集約し効率化したことで、担当者はプログラム製造業務に、責任者はマネジメント業務に専念できる、という声もありました。

集計の自動化による業務効率化のすすめ

今回はシステム開発の現場でのお話を伺いましたが、データ集計業務はアンケートや売上状況などの把握・分析に用いられるごく一般的な業務のひとつです。

集計業務は、対象の件数が増えていくほど時間コストがかかるようになります。もし、規模が大きくなることが予測されるなら、自動化可能な操作をプログラムに任せることで、業務効率化を図ることをおすすめします

また、毎月あるいは毎週同じ集計業務を繰り返すというケースもたいへんよく見られます。その場合も業務ルールにのっとり自動化することで、大きな効率化を図れる場合が多いでしょう。

集計業務を自動化するメリットには次のようなものがあります。

  • 転記などの手作業にかかっていた時間を大幅に短縮できる
  • 転記時の入力ミスが発生しない
  • 短縮した分の時間を集計したデータのより詳細な分析に費やすことができる
  • 分析に必要な作業そのものも自動化した操作の中に含ませることができる
  • それらの効果によって、集計結果を利用する業務全体の品質向上にもつながる

たとえば入力内容の不備や項目Aと項目Bの矛盾といった記入ミスを自動で、しかも確実に検出することができます。他にも、あらかじめデータの傾向を設定しておき、結果と比較することで問題点の分析を行うなど、様々な応用が利きます。

 業務効率化は業務の流れの把握から始まる

集計業務を効率化するにあたってまず必要なのは、業務の流れの把握です。操作を逐一洗い出し、その操作ごとにどんな処理を行っているのか整理します。次に、個々の操作について引き続き手動のまま対応するのか、自動化した方がよいのか判断します続けて、自動化する操作について具体的にどんな手法をとるのが適切か検討します。業務を行っている環境、技術的な問題、コストなども踏まえていくつかの手法から選択するのがよいでしょう。

操作自体を変えることが可能な業務内容であれば、業務の流れ自体の見直しも図ることでさらに効率化の効果が上がることも考えられます。たとえば、1回ごとに実施するアンケートの集計の場合、回答の収集方法を紙やメールからWebフォームへの入力に切替え、そのデータを利用するといった手法をとることも可能です。

なお、すでにExcelの帳票を使っての業務である場合、多くはVBAを利用するのが適しているのではないかと考えられます。

VBAを学ぶには 

VBAに限らずプログラミングを学ぶには、本やサイトを参考にしながらの独学、オンラインまたはリアルのセミナーやスクールに通うといった方法があります。VBAの場合、プログラムのコードを書いて実行する環境は、Windows上でMicrosoft Officeがあればよいので、手軽に始めることができます。他言語でのプログラミング学習経験があれば、独学でもある程度学習を進めることが可能でしょう。ただし、プログラミング自体未経験であれば、プログラミングそのものの基礎の基礎から理解することが重要です。そのためには、スクールで学ぶのが安心です。

今回体験談を伺ったAさんは、時間的に圧迫されそうな業務効率化の必要に迫られ、VBAについて学習しながら実践的に自動化を進められたそうです。とはいえ、あらかじめ学習していれば、いつどこで非効率的な業務にあたることになったとしても、自信を持って業務の効率化を図ることができます。日頃から集計業務に携わっている方、非効率な業務が身近にある方は、VBAを含めたプログラミングを学ぶことを考えてみてはいかがでしょうか。

まとめ

  1. 集計業務は、規模が大きくなる場合や繰り返し実施する場合は自動化で効率化を図るとよい
  2. 集計業務の自動化により業務効率化を図った際の効果は?
    • 時間コストの節約
    • 業務全体の品質向上
  3. 集計業務効率化の進め方は?
    • 業務の流れを把握する
    • 自動化する操作を決める
    • 自動化する操作について具体的にどんな手法をとるのが適切か検討する
    • プログラミングで自動化する
  4. 集計業務にExcelの帳票を用いている場合、効率化の手法にはExcel VBAが適しているケースが多い
  5. プログラミング未経験であれば、VBAはスクールで学ぶのが安心