メニュー

ここまでできる?Excelマクロ(VBA)を使った業務効率

 2022.04.19  CLOUDIL 【クラウディル】

汎用性や自由度が高いExcelは、さまざまな業務をカバーできる上、導入コストもかからないソフトです。このExcelにVBAをうまく組み込むだけで、単純作業やデータの管理などを自動化でき、さらに効率的な業務を実現できます。
今回はExcelマクロ(VBA)で可能な業務効率化についてわかりやすく解説します。

VBAとは?

VBA(Visual Basic for Applications )とは、MicrosoftのOffice専用のプログラミング言語です。よく似た意味で使われる言葉にマクロがありますが、マクロはExcelやWordに備わった機能名です。アプリケーション内でマクロのコードを作成するときに使われるVBAとは正確には異なるものですが、一般的に同じ意味で使用しても問題ありません。

役割別Salesforce導入のメリット
中小事業者困ったときのDX事典

VBAでできる業務自動化・効率化

VBAを使用してExcel操作を自動化すると、時間がかかっていた作業も一瞬で片付けられるなど大幅な時短が望めます。どういった作業にVBAを活用して効率化が図れるのかを下記で解説します。

単純作業を自動化

自動化できる作業例の一つは転記です。日報を週報にまとめたり、日次データを決まった期間にまとめたりするなど、「シート1からシート2に必要な情報を転記する」といった業務においてVBAは力を発揮します。これらの業務はVBAでデータの取得ルールを設定することで実行可能です。
また、他の応用例として、日々の業務で繰り返し行われる計算処理があります。この業務では、Excelの売上管理一覧のシートに入力したデータを指定セルに集計されるように自動処理の設定も可能です。

フォルダ作業を自動化

日々の業務をこなす際、扱うデータはかなりの量であることが多く、人が全てを把握して管理するのは容易ではありません。ここでもVBAを利用することで管理を簡易的にできます。例えば、商品別・顧客別などの条件をVBA設定すればデータ量の多いワークシートの内容をいくつかに分割可能です。反対にデータ量の少ない複数ファイルから一つのファイルへの内容の集約もできます。
また、決まった階層通りにフォルダを大量作成する、フォルダ内の複数ファイル名を書き換えるなどの作業が必要なときにも、VBAを使えばボタン一つで操作が可能です。現在までに作成したフォルダ情報を一覧にまとめるといったことも簡単にできるので、これらの業務の際はVBAの利用を真っ先に考えるのがおすすめです。

Outlookでのメール自動送信

同じOffice製品であるOutlookとExcelの顧客情報(会社名や氏名、メールアドレス等)を連携させ、メールを自動で作成・送信できるツールを作れます。またVBAを利用することでハイパーリンクなどを貼り付けられるようになり、メール文章内からWebサイトやフォルダ、ファイルなどへのアクセスが可能になります。

Accessと連携したデータベース作成

VBAを利用すれば、操作画面をExcelのままにAccessなどのデータベースを操作できます。データの閲覧と書き換えができる上、Access以外にもMySQL・SQLServer・Oracle・Microsoft Access等のデータベースとも連携が可能です。

Webから情報を入手する

Webから情報を取得し、それらの情報を一覧にまとめたファイル作成もできます。例えば指定されたショッピングサイトから商品情報を得たいとき、それまで必要だった一連の作業をボタン一つで実行可能です。Excel上で必要なキーワード設定をするだけで、該当のサイト内に記載されている商品名や価格、在庫の数などの検索・書き出しが自動で行われ、さらにURLを取得すれば商品別に関連したページのハイパーリンクもExcel上に作成できます。

PDFの自動生成

PDFの読み込み、テキスト抽出ができる
Excelの取引データを元に取引先別の請求書・納品書などをPDFに自動で作成できます。手入力で作成すると記載漏れやミスが起きやすい作業ですが、VBAを利用することで取引に関するデータから正確な金額を計上し、その金額と取引先の情報をPDFテンプレートの各項目に反映できます。その上、締め日を事前入力して調整できるので期日を気にして作業することなく、必要なときには書類データがほとんどできあがっている状態にすることまで可能です。反対にPDFの情報を読み込み、テキストデータとして抽出、Excel上への出力もできます。

アプリケーションとの連動

VBAでChatworkやSlackなどのアプリケーションとも連動できます。Chatworkでは、Excel内で入力したメッセージとファイル添付の自動通知が可能です。設定次第では月初・月末の定期通知や、Excel上に作成した業務タスクの管理一覧に担当者を設定することで、その一覧上から各担当者へのタスクや期限の通知管理まで行えます。また、担当者から送られてきたメッセージを取得し、まとめてExcelへの出力も可能です。SlackではAPIを通じてメッセージの自動通知が可能になります。

VBAでできないこと・苦手なこと

VBAは小規模な自動化・効率化には向いていますが、万能ではありません。中にはVBAでは処理の難しい分野もあります。

Office製品の作業以外の自動化

VBAはOfficeアプリケーション内の複数機能を自動化できますが、Office製品以外の外部アプリケーションとの相互連携はほとんどできません。Officeと互換性のある他社製のソフトでは、連携ができる可能性もありますが、限られた一部操作以外はできない恐れが高いです。

大量のデータを処理する

VBAの処理容量の限界は、原則としてExcelワークシートの最大容量です。またPC上で処理を行うため、例えば100万件あるデータベースを扱うといった際は、データ処理にかなりの時間を要します。そのような膨大なデータ処理を行う場合は、データ量に合わせてストレージが増やせるクラウド上で展開されるサービスなど、PCスペックに依存しないクラウド環境の導入を検討する必要があるでしょう。

プログラミングスキルのない人が管理する

VBAはプログラム言語であるため、動作させるにはまずプログラムの構築が前提です。つまり、専任者を立てる必要があり、人材を確保できない場合など、うかつにVBAに手を出すより、他の方法を試すほうがやりやすい可能性もあります。また、プログラミングスキルを含めたVBAスキル習得の期間まで含めると、一から導入するにはかなりのコストをみておく必要があるでしょう。

クラウド上のサービスがVBAの代わりになることも

上記で挙げたようにVBAは業務自動化においてとても便利である反面、Office製品以外の作業については相互連携しづらいばかりか、導入するには人件費や構築などのコストがかかるといったデメリットがあります。このような場合、クラウド上のサービスを利用することで、そういったデメリットなしにVBAと同様の作業効率化を実現できる可能性があります。
クラウド上のサービスであれば、上記で挙げた内容と同等の業務効率化ができるだけなく、VBAのようにアプリケーションの相互連携の縛りもないため、自動化できる分野も広がります。また、ストレージでデータ管理できることから容量の限界を気にする必要もありません。すでに構築されているプログラムが多いことから開発費やサーバー設置費などのコストも削減でき、専任者を立てなくても管理が可能です。

まとめ

Excelマクロ(VBA)を利用できれば時間がかかっていた単純作業や書類作成、業務タスク管理まで自動化でき、業務効率を大きく改善できます。
しかし、一から導入するには時間とコストがかかり、またOffice製品以外のアプリケーションとは相互連携しにくいためOffice製品が関わらない分野では効率化を図りづらい場合もあります。導入のメリット・デメリットを考えたときに、導入コストが少なく同様の運用が可能であるクラウド上サービスを検討するのも一つの選択肢となるでしょう。

中小事業者困ったときのDX事典

RECENT POST「コラム」の最新記事


ここまでできる?Excelマクロ(VBA)を使った業務効率
メールマガジンのご案内

RECENT POST 最新記事

RANKING人気記事ランキング