業務効率化の道具箱(9)VBAで自動集計アプリを作ってみよう山浦恒央の“くみこみ”な話(162)(1/3 ページ)

ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第9回は、VBAによる自作ツール作成の例として自動集計アプリを作ってみる。

» 2023年02月21日 07時00分 公開
※本記事はアフィリエイトプログラムによる収益を得ています

1.はじめに

 本シリーズでは、日頃の作業を効率化し、定時で帰宅する方法を紹介しています。主な業務効率化の例は、以下の通りです(詳しくは第154回参照)。

  • スペックの高い機器を導入する
  • 使用機器を使いこなす
  • ツールを導入する
  • 自分でツールを作る
  • 働き方を工夫する

 前回に引き続き、今回も「自分でツールを作る」を取り上げます。

⇒連載「山浦恒央の“くみこみ”な話」バックナンバー

2.前回の振り返り

 前回は、自作のツール作成の第一歩として、VBAの環境整備を実施しました。VBAは、Excelにプログラムを記述し、任意の動作ができます。よって、事前準備をすれば、普段の定型業務を自動化できます。

早く帰りたい ※写真はイメージです

 読者の中には、「なぜ、今さら、VBAなのか?」と疑問を持つ人もいるでしょう。

 プログラムの機能や性能を向上させる場合、オペレーティングシステムと組み込み系システムでは方針が大きく異なります。組み込み系では、一部の特化した機能の拡張や応答性能を上げればユーザーは満足しますが、OSのような「汎用系」では、全体の機能や性能を向上させねばなりません。これと同じことが組織の効率改善でも言えます。組織では、1つの部署の改善(局所的な改良)より、組織全体の効率の底上げが重要になります。

 組織で作業の90%以上は、Word、Excel、メール、PowerPointの4つのアプリを使って実行します。日常の業務で、この4つしか使っていない人や、プログラムを書いたことのない人は、VBAが何かを知りませんし、どんな利点があるのか想像もできません(ちなみに、VBAは、Word、Excel、PowerPointのようなMicrosoftのOffice製品で動作する便利なマクロを自分で作ることができる簡単なプログラミング言語です)。特に、組織の上層部やハードウェア系のエンジニアは、プログラミングに苦手意識があり、VBAに向き合わない傾向が強いように思います。

 日常業務を広く浅く効率向上させるため、VBAを使い、Word、Excel、PowerPointの作業効率を上げることは非常に重要です。Python、PowerShell、C#を使って自分でツールを作っているエンジニアは、「VBAは大昔から使っていたし、セキュリティの課題がある」と考える上級者です。今回のコラムは、組織の大部分を占める非プログラマーやシニア層が対象です。上級エンジニアの方々は、今回のコラムを斜め読みしていただければと思います。

 今回は、自作ツールの作成例として、自動集計アプリの作り方を紹介します。

3.ちょっとした昔話

 ちょっとした昔話を紹介します。

3.1 データ整理業務のエピソード

 昔、以下のようなデータ整理を頼まれました。

同僚「データの集計をお願いします。ここに集計用のデータがあるので、Excelにまとめてください」

筆者「まとめましたので提出します」

同僚「すみません。別のデータも追加してほしいのですが」

筆者「再度、まとめましたので提出します」

同僚「送付したデータが間違っていました。修正をお願いします(以下、延々と修正依頼が続く)」

筆者「分かりました……(怒)。これはツールを作った方が早いですね」

 上記の作業は簡単ですが、繰り返し依頼が来たため、若干の怒りを覚えました。

3.2 自作ツールを使った解決策

 筆者は、データ整理作業のフラストレーションをツール作成に向けました。概要は以下です。

  1. 集計結果用のExcelを開き、集計ボタンを押す
  2. 集計結果用のExcelから、提示されたデータを開き、必要なデータをコピーする
  3. コピーしたデータを集計結果用のExcelに貼り付ける
  4. 集計結果を確認し、表記を整える

 集計結果用のExcelシートにボタンを配置し、ボタンを選択すると、VBAを起動します。起動後、ファイルダイアログを開き、コピーしたいファイルを選択すると、集計結果用のExcelにコピペするツールです。

 ツールを作った結果、「ファイルを開いて、コピペ……」という作業を一発で作成できるようになりました。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.