集計業務の手作業にかかる負担には困ったもの。アンケートの回答や売上推移など定型のデータが入ったファイルを集計する業務、対象の件数が増えれば増えるほど、手作業の手間や転記ミスもどんどん増えていきます。そこで考えたいのが、集計の自動化による業務の効率化。Excel VBAをはじめとするさまざまな手法を使って、手作業で行っていた操作を自動化します。自動化することで、ミスの発生や作業の手間を大幅に減らし、時間コストを節約することが可能です。さらに、業務効率化により確保できた時間を有効活用して、業務の品質向上につなげることもできるのをご存じですか?
そこで今回はシステム開発の現場で集計を自動化、業務を効率化したAさんに体験談を伺いました。
目次
業務の内容としてはテキストファイルの集計業務です。Windowsの環境で、決められたフォルダーに置かれたテキストファイルを開き、定型(テンプレート)で記入されたテキスト情報をExcelのシートに手作業で転記し、一括管理、集計を行っていました。ファイルとExcelの転記処理が終わったファイルを処理前のファイルと混ざらないようにする作業も必要ですし、転記した項目にズレがないかなどの確認も欠かせません。
はい。ひとつひとつの作業はサーバーの所定のフォルダーからファイルを開き、セルに順番にデータを入れていくといったような単純作業ですが、手間がかかりミスも誘発されやすい内容です。また、処理する件数が多くなればなるほど、件数増加以上に時間がかかってしまいます。そこで、テキストファイルを開き転記するという一連のオペレーションを自動で行うことで業務効率化を図ることを考えました。
RPAの利用、Excel VBA、VBS(スクリプト)またはUNIXサーバーでテキストファイルのデータを読込み、編集しCSV出力するなど、効率化のために用いることのできる手法はいくつか考えられました。その中で、次のような条件を満たすことのできる手法があるか検討しました。
検討の結果、Excel VBAを利用することを選択、もともと集計に使っていたExcelファイルにVBAで自動化のプログラムを追加しました。
第一に、時間コストの節約です。手作業での転記によるミスがなくなり、確認にかかる時間が大幅に短縮されたこと、転記自体の時間もほぼ0になったことで、集計業務そのものが短時間で済むようになりました。おかげで、それまで単純作業に費やしていた時間を、集計後のデータ分析などに多く当てることができるようになりました。このことにより、集計結果を利用した業務全体の精度・品質が向上したのが、第二にして最大の効果といえると思います。
システム開発現場で、モジュールテストの試験結果票である定型テキストファイルをプログラミング・テスト担当者より受け取り、Excelの管理票のシートに手作業で転記して管理する業務を行っていました。最初は1日数件程度のものでしたが、開発が進むにつれてテスト対象や結果の報告も増え、手作業では時間がかかってしまい、転記ミスの発生の増加も予想されました。
システムの開発そのものではないところでのよけいな時間コスト発生は避けたいものですが、かといってもちろん新たな人員を割く余裕もありませんでした。そこで、Excelの管理票に自動でファイルを読込みすることで管理業務を効率化させればよいのではないかと考えました。
VBAが、先ほどお話しした条件に特に見合っていたためです。具体的には以下のような利点があります。
Excelファイル1つのオペレーションでファイル読み込みから集計まで可能
マクロ記録の機能を利用することで、まったく一からプログラミングしなくても自動化が図れる
FSO(FileSystemObject)の仕組みにより、ファイルやフォルダーの読み込みを柔軟に行うことができ、ファイルを壊す心配がない
まずは、一連の業務フロー(流れ)を整理し、どんな処理を行っているのか、自動化できる要素はどこにあるか考えました。
この業務ではこのような流れになりました。
そうです。1)についてはその都度対象フォルダーが変わるので、Excelのシート上で参照フォルダーを手動で選択するようにしました。次に、2)以降を順に自動で処理するプログラムのコードを書きました。VBAの文法を勉強しながら書いていくのはそれなりに大変でしたが、実際のオペレーションを、VBAのコードひとつずつに置き換えられるくらいていねいに分解して進めていったので、それに当てはまるコードを書いて進めるという形でなんとかなりました。その辺りは、別の言語でのプログラミングを学んだことがあり、基本の考え方がすでにできていたため有利だったと思います。
集計業務を効率化したことにより、システム開発における成果物であるシステムそのものや、テスト報告書の品質が結果的に向上しました。その要因としては次のような点がありました。
また、当初は帳票への記入を担当者自身で行い、集計・管理を責任者が行うという形で業務を行っており、負担があったそうです。集計業務を集約し効率化したことで、担当者はプログラム製造業務に、責任者はマネジメント業務に専念できる、という声もありました。
今回はシステム開発の現場でのお話を伺いましたが、データ集計業務はアンケートや売上状況などの把握・分析に用いられるごく一般的な業務のひとつです。
集計業務は、対象の件数が増えていくほど時間コストがかかるようになります。もし、規模が大きくなることが予測されるなら、自動化可能な操作をプログラムに任せることで、業務効率化を図ることをおすすめします。
また、毎月あるいは毎週同じ集計業務を繰り返すというケースもたいへんよく見られます。その場合も業務ルールにのっとり自動化することで、大きな効率化を図れる場合が多いでしょう。
集計業務を自動化するメリットには次のようなものがあります。
たとえば入力内容の不備や項目Aと項目Bの矛盾といった記入ミスを自動で、しかも確実に検出することができます。他にも、あらかじめデータの傾向を設定しておき、結果と比較することで問題点の分析を行うなど、様々な応用が利きます。
集計業務を効率化するにあたってまず必要なのは、業務の流れの把握です。操作を逐一洗い出し、その操作ごとにどんな処理を行っているのか整理します。次に、個々の操作について引き続き手動のまま対応するのか、自動化した方がよいのか判断します。続けて、自動化する操作について具体的にどんな手法をとるのが適切か検討します。業務を行っている環境、技術的な問題、コストなども踏まえていくつかの手法から選択するのがよいでしょう。
操作自体を変えることが可能な業務内容であれば、業務の流れ自体の見直しも図ることでさらに効率化の効果が上がることも考えられます。たとえば、1回ごとに実施するアンケートの集計の場合、回答の収集方法を紙やメールからWebフォームへの入力に切替え、そのデータを利用するといった手法をとることも可能です。
なお、すでにExcelの帳票を使っての業務である場合、多くはVBAを利用するのが適しているのではないかと考えられます。
VBAに限らずプログラミングを学ぶには、本やサイトを参考にしながらの独学、オンラインまたはリアルのセミナーやスクールに通うといった方法があります。VBAの場合、プログラムのコードを書いて実行する環境は、Windows上でMicrosoft Officeがあればよいので、手軽に始めることができます。他言語でのプログラミング学習経験があれば、独学でもある程度学習を進めることが可能でしょう。ただし、プログラミング自体未経験であれば、プログラミングそのものの基礎の基礎から理解することが重要です。そのためには、スクールで学ぶのが安心です。
今回体験談を伺ったAさんは、時間的に圧迫されそうな業務効率化の必要に迫られ、VBAについて学習しながら実践的に自動化を進められたそうです。とはいえ、あらかじめ学習していれば、いつどこで非効率的な業務にあたることになったとしても、自信を持って業務の効率化を図ることができます。日頃から集計業務に携わっている方、非効率な業務が身近にある方は、VBAを含めたプログラミングを学ぶことを考えてみてはいかがでしょうか。