VBAでできることとは!? 業務改善する事例・必要な技術を徹底解説!

Excel業務を改善したいけど、VBAで改善できるかわからない……
VBAを使って業務改善できる例や具体的な改善方法はないだろうか?
できればVBAの可能性も含めて実現できる活用例が知りたいな……

普段からExcelを使って業務をしている方にとって、VBAはとても強力な武器になります。自動化して工数を削減できるだけでなく、単純作業に時間を使わなくなることで、より高度な分析に時間を割けるようになるからです。

ただ、VBAが便利という言葉だけが先行して、具体的な活用事例がわからず、一歩踏み出せない人もいるのではないでしょうか。

こんにちは! フリーランスエンジニア兼テックライターの脇坂です。

この記事では、Excel業務を改善したいと思っている方向けに、VBAで業務改善できる活用事例を解説します。

ただ活用事例を解説するだけでなく、改善例ごとに必要なスキルを紹介しているため、改善したいと思ったときに必要なスキルがわかるような構成で記事を書いています。あなたの業務を改善するための参考書としても使えるので、ぜひ読んでみてくださいね!

この記事はこんな人のために書きました。

  • 日常的にExcelを使っていて業務改善したいと思っている人
  • VBAで業務改善の道を切り開きたいと思っている人

そもそもVBAとは?

開発環境

画像:Shutterstock

まずはVBAについて簡単に説明していきましょう。

VBAとは、Visual Basic for Applicationsの略で、Microsoft Officeシリーズ専用のプログラミング言語です。例えば、ExcelやWord、PowerPointなどのようなツールを「自動化するツール」を作ることができます。

VBAやプロラミングと聞くと、難しそうと考えて手が出しにくい方も多くいるかと思います。そんな方はまず、VBAについてさらに詳細に説明している記事もあるので是非参考にしてみてください。

VBAとは?機能・マクロとの違い・活用事例も解説!
更新日 : 2020年3月3日

VBAでできることとは?

画像:Shutterstock

VBAでは、大きく分けて次の6つの作業が自動化できます。具体的にどんな作業か、詳しく解説しますね!

転記作業の自動化

一つめは、転記作業です。

Excelの作業で、「ブックAのデータから必要な情報だけ調べて、ブックBに転記する」という作業をしたことがある方もいるのではないでしょうか。簡単な例だと日報を週報としてまとめるケースや、データ入力した日次データを月に一回まとめる作業などです。

データを取得するルールを決めれば、これらの業務はVBAで自動化することができます。月次処理でデータを整理する場合でも、手動でデータ整理するのではなく、VBAで自動作成されたデータをチェックするだけで済むようになります

レポート作成の自動化

二つめは、レポート作成作業です。

請求書、見積書、納品書などをExcelのデータから作っている場合や、Excelのデータ一覧から作成したグラフをもとに、PDFでレポートを作成するケースはよくありますよね。作成する手順が決まっていれば、そこまで時間はかからないかもしれません。

ただ、膨大な数になってくると話は別です。

経理書類の請求書などは、月末が近づくにつれて多くなってきたりもしますよね。会社の規模にもよりますが、数百件作ることもざらかもしれません。

作業をしているうちに、どこまで作業が終わっているのか、どこまで入力が終わっていてチェックが終わっていない書類はどれかわからなくなってしまい、作業効率が落ちたり、ミスしてしまう人もいるのではないでしょうか。

VBAでレポートを自動作成するツールを作っていれば、これらの業務をチェックだけで済ませることができます。

Office連携作業の自動化

三つめは、Office連携作業です。

OutlookやPowerPoint、WordとExcelを連携することができます。Excelの顧客一覧を見ながらメールで連絡したり、Excelのデータ・グラフをPowerPointやWordの資料に使うケースはよくありますよね。これらの作業は、全て自動化することができます。

複数の作業のうちの1作業かもしれませんが、忙しくなってくると少しでも時間を浮かせたいと思うものです。ちょっとした事務作業を効率化することで、ちりつもで多くの時間を浮かせることができるのです。

請求書の作成を自動化

四つめは、請求書の作成を自動化です。

よくExcelなどのOfficeソフトを使って請求書を制作することがありますが、その入力を毎回するのは結構面倒な作業ですよね。そんな悩みもVBAで簡単に自動化できます。

請求書の各入力項目に記載する内容を読み込ませるだけで、後はテンプレートに沿って自動で作成させることができるのです。

メールの一括送信

五つめは、メールの一括送信です。

毎日の事務作業の中にはメール対応が必須でついてきますよね。VBAでは、Outlookと連携した自動化処理が作れますので、それを利用することでメールを一括送信するツールも作ることが可能です。

特に営業の方にとっては業務が一気に楽になります。その上、普段使っているExcelをコントローラとして利用できるため、使い方も簡単で導入するのもお手軽にできますね。

データベースをメンテナンスするシステム

六つめは、データベースをメンテナンスするシステムの構築です。

これはつまり、Excelワークシート上でデータベースの読み書きできるプログラムのことを指します。データベース管理ツールの使い方やSQLの文法がわからなくても、Excel上から更新が行えるという便利なプログラムです。

MySQL、SQLServer、Oracle、Microsoft Accessといったさまざまなデータベースに接続することができ、複数人でサーバーの運用保守を行うときなどに便利なものですね。

VBAでできないこと・苦手な事は?

画像:Shutterstock

ここまでではVBAについて、できることや業務効率化方法について良いことばかりを挙げました。ですが、そんなVBAにもできないことや、苦手としていることもあります。

それが、これから紹介する「多くのデータを扱う開発・アプリケーション開発」といったことになります。

多くのデータを扱う開発

VBAでは、基本的にとても多くのデータを速く処理することが苦手です。ここで言う、「多くのデータ」というのは例えば数万個などを超えるデータのことを言っています。

苦手なことを無理にVBAでやろうとすると、処理が実行されずに最悪の場合、フリーズすることもあるので注意してくださいね。

もしそれでも数万個のデータを扱いたい場合には、SQLやC++などの目的に合わせたプログラミング言語を検討してみましょう。

アプリケーション開発

VBAは基本的に、なにかの処理をすることが向いています。そのためデザイン面などを構築するのは得意としていないため、デザイン性を重視するようなアプリケーションの開発というのは比較的苦手としています。

VBAを活用して工数削減できる事例7選

画像:Shutterstock

次に、今まで解説したVBAの自動化について、具体的な事例を解説します!

1.転記作業の事例

まず、転記作業の事例についてです。

ブックAの日次データシートから、ブックBの月次データシートに転記する作業の改善例です。イメージしやすいように、画像で業務の違いを用意しました。

改善前のイメージ:

転記作業の事例:改善前のイメージ

改善後のイメージ:

転記作業の事例:改善後のイメージ

ブックAを開くことなく、ブックBの「日次データ取得ボタン」をクリックするだけで、作業が終わっています。ミスがないかチェックするダブルチェックは必要ですが、作業がとても楽になりますよね。

仮に「ブックAを開く → 必要な日次データを探す → ブックBを開く → 月次データにまとめる」の作業に5分かかっていた場合、12件こなすだけで1時間かかってしまいます。ボタンクリックのみで作業が終わると、数秒で処理が終わります。チェックの時間を入れても1分程度で終わります。

1時間かかっている作業を、約10分で終わらせることができるのです。データ入力作業をよくしている方は、同じ作業をしていないか? 単純化された作業を自動化できないか? といった視点で効率化を考えてみるのがおすすめです。


■この例を作るために必要な知識

※別ブックからセルの値をコピーするサンプルが載っています。

2.レポート作成の事例

次に、レポート作成の事例についてです。

データ一覧シートなどの一覧データから、手作業で作っているレポート作成作業を自動化できます。こちらもイメージしやすいように、画像で業務の違いを用意しました。

改善前のイメージ:

レポート作成の事例:改善前のイメージ

改善後のイメージ:

レポート作成の事例:改善後のイメージ

レポートを作るときは、データ一覧のどの列のデータを、レポートのどの部分に書くかが決まっていますよね。グラフを作成するときも、グラフ作成に使うデータが事前にわかっていますよね。その作業を、VBAで自動化させるイメージです。

データ一覧からグラフを作成し、必要な情報をレポートに書き込んで作る場合は10分以上かかる場合もありますよね。その作業を、ボタンクリックするだけで終わらせることができます。

10件作る場合は、100分かかる作業を1分で終わらせることができるため、とてもおすすめです!


■この例を作るために必要な知識

ちなみに、全く同じ作業をする場合は、VBAのマクロの記録を使えばサクッと自動化処理が作れます。興味がある方は以下も見てみてくださいね!

【ExcelVBA入門】マクロの記録を使って簡単にマクロを作る方法とは
更新日 : 2019年9月1日

3.Office連携作業の事例

三つめは、Office連携作業の事例です。

ここでは、Outlookを例にお話ししますね。こちらもイメージしやすいように、画像で業務の違いを用意しました。

改善前のイメージ:

Office連携作業の事例:改善前のイメージ

改善後のイメージ:

Office連携作業の事例:改善後のイメージ

営業メールの送信を自動化し、メール送信有無を自動で管理する例です。

また、メール送信のあて先が間違っていると事故につながってしまうため不安……という人向けに、送信せず下書きに保存しておくこともできます。メールを作る作業だけ自動化し、チェックや本文の細かい修正のみで済ませることができるため、作業が効率化できます。

5分前後かかっていた作業を、1分前後で終わらせることができるようになります。


■この例を作るために必要な知識

ちなみに、OutlookでGmailのアカウントを設定すればGmailも使えます。以下でわかりやすく解説されていました。

参考:http://itdiary.info/microsoft-office/post-1046/

4.Web上のデータを収集

四つめは、Web上のデータ収集についてです。

事務作業をする方の中には、Webから手動で操作しデータを集めて分析資料をまとめる方も多くいるのではないでしょうか。その作業が一時的なものであれば手動で操作しても良いのですが、もし定期的に同じ作業が発生する場合はけっこうな手間となりますよね。

そんな時もVBAを使うことで、Web上からデータを自動で取得するツールを作ることが可能です。その技術を応用すれば、以下のような業務も自動化することができます。

  • Webのデータを自動収集
  • 収集したデータを使ってグラフ作成
  • グラフを使ってPDFレポート自動作成

5.ガントチャート管理

五つめが、ガントチャートの管理についてです。

VBAでは、ガントチャートと呼ばれる進捗管理表を自動で作成することができます。業務をする上で進捗管理をすることは個人だけでなく、チームで仕事をしている時に他の人がどのくらい作業を進められているのかがひと目で確認できるため、必須と言っても過言ではない機能ですね。

もし進捗管理をしっかりできていなければ、納期がギリギリになっても未完了のタスクが数多くあることに気づいたり、最悪の場合では納期を遅らせたりすることの原因になります。

そんな進捗管理をするための「ガントチャート」もVBAを使えば自動で作成することができるので、是非活用しましょう。

6.WebAPIとの連携

六つめは、WebAPIとの連携についてお話します。

WebAPIとは、簡単に言えばソフトウェアの機能をその他のプログラムから利用するために用意されたサービスの窓口のようなものと考えてください。Windowsを使っている方は、ほとんどのアプリケーションの利用にはこのAPIが使われています。

このような便利な外部アプリケーションを連携し利用することも、VBAでは可能となっています。

例えば、簡単なもので言うと「日付の祝日を判定するAPI」を利用してExcelに入力された日付が祝日かどうかを判定してくれるものなどがあるので、WebAPIにはどのようなものがあるのか調べてみるのもいいでしょう。

7.文字列一括置換

最後にご紹介するのが、文字列の一括置換についてです。

例えば、エクセルで表などを作った際には一覧に記入された文字列をまとめてすべて変換したいことなどがあります。そんな時にVBAで文字列一括置換のプログラムを組み実行すると、指定した文字列を任意の希望する文字列に一括でボタン一つで置換できるというものです。

一見、単純な機能に見えますが、実際の事務作業でこの単純な機能が1つ行えるだけで、かなりの業務効率化が図れるので非常におすすめです!

VBAの学ぶ手順とは?

画像:Shutterstock

独学はできるのか?

ここまで、業務改善できる例・必要なスキルなどを解説してきました。ただ、VBAを使ったことがない方もいるのではないでしょうか。

プログラミングと聞いて、「難しそうだなぁ。」「ハードル高いなぁ。」と思っている方のために、VBAを独学できるのかどうかについて少しお話していきます。

まず結論から言うと、「独学は可能」です。もちろん、独学で始める人の現時点でのスキルにより習得までの期間は前後しますが、VBAは初心者の方でも比較的習得しやすい言語と言われていますので、安心してください。

それでも心配だと思う方は、一度書店で買ったり、図書館で借りるなどして参考書を見てみることをおすすめします。

その参考書の内容を見て実際に手を動かしながらやってみると、ある程度自分でもできそうかどうかがわかってくると思うので、独学するひとつの基準になるでしょう。

ただ、VBAの情報はネットに多すぎるため、何から始めればいいかわからないという人もいると思います。そんな方向けに、VBAをこれから学ぶための基礎についてまとめています。

以下で詳しく解説しているため、みてくださいね!

【ExcelVBA入門】VBAの基礎知識・書き方・おすすめの学習方法を解説
更新日 : 2020年7月7日

まとめ

今回は、VBAを活用して業務改善する事例・必要な技術を解説しました。

ちょっとしたVBAの処理を作るだけで、大幅な効率化・工数削減ができます。どんな作業を解決したいかイメージした上で、必要なスキルを学ぶことがおすすめです!

ぜひ、VBAを習得して業務改善に活かしてくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!

侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー