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

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

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

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

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

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

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

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

  • 日常的にExcelを使っていて業務改善したいと思っている人
  • VBAで業務改善の道を切り開きたいと思っている人
この記事の要約
  • VBAはMicrosoft office用プログラミング言語
  • 転記やレポート作成などoffice関連の操作を自動化できる
  • VBAを活用すれば大幅な効率化や工数削減に期待できる

なお、どのプログラミング言語を学べばいいのか、どう学習を進めればいいのかなどがあいまいな人は「プログラミング学習プラン診断」をお試しください。

かかる時間は1分ほど。4つの質問に答えるだけで、あなたにあう言語や学習プランを診断してもらえます。

これからプログラミングを学ぼうとしている人は、ぜひ一度お試しください。

\ 4つの質問に答えるだけ /

目次

そもそもVBAとは?

開発環境

画像:Shutterstock

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

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

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

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入門】マクロの記録を使って簡単にマクロを作る方法とは
更新日:2024年3月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の基礎知識・書き方・おすすめの学習方法を解説
更新日:2024年3月29日

挫折なくVBAの習得を目指すなら

先ほど「独学でのVBA習得は可能」と述べましたが、なかには

独学で習得できるかな…
途中で挫折したらどうしよう…

と不安な人もいますよね。

実のところ、VBAといったプログラミング学習で挫折する独学者は多くいます。事実、弊社の調査では

  • 不明点を聞ける環境になかった
  • エラーが解決できなかった
  • モチベーションが続かなかった

などの理由から、87.5%が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。

87.5%の人がプログラミング学習時に挫折を経験
不明点やエラーが解決できずプログラミングを挫折した人が多数

調査概要:プログラミング学習の挫折に関するアンケート
調査対象:10代〜80代の男女298名
調査期間:2019年8月13日~8月20日
調査方法:インターネット調査
掲載元:PR TIMES

また、こうした背景もあってか、弊社がプログラミングに興味がある人100名へ実施した別の調査では

  • 確実にスキルを身につけられると思ったから
  • 独学では不安がある
  • 効率よく学べそう

などの理由から、61%が「プログラミングの勉強を始めるならスクールを選ぶ」と回答しています。

61%の人がプログラミングの勉強を始めるならスクールが良いと回答
確実にスキルを身につけられそうという理由でプログラミングスクールを選ぶ人が多い

調査概要:プログラミングに興味がある方の意識調査
調査期間:2021/11/19~2021/12/3
対象者:プログラミング学習を検討している10代~50代の男女100名
調査媒体:クラウドワークス
掲載元:PR TIMES

加えて、プログラミングスクールの卒業生に「独学ではなくスクールを活用した理由」を聞いたところ「できるだけ短い期間でITエンジニアへの転職や副業に必要なスキルを身につけたかった」という回答も多く寄せられました。

上記から、1人でプログラミングスキルを習得できるか不安な人や短期間でスキルを習得したい人ほど確実性を求め、現役エンジニアといったプロの講師に質問できるプログラミングスクールを利用する傾向にあるのがわかります。

いざ独学でプログラミングを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「プログラミングスキルを身につけるのって思っていたよりも難しいんだな…」とVBAの習得自体を諦めかねません。

仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できる実践的なスキルが身につかなければ、結局後悔することになります。

そこで、おすすめしたいのが「SAMURAI ENGINEER(侍エンジニア)」です。

300x300-samuraiengineer (1)
6
700x700_01 (1)
700x700_02
700x700_03
700x700_04
700x700_05
700x700_06
700x700_07
700x700_08
300x300-samuraiengineer (1)
6
700x700_01 (1)
700x700_02
700x700_03
700x700_04
700x700_05
700x700_06
700x700_07
700x700_08
previous arrow
next arrow
料金月分割4.098円~
実績・累計指導実績4万5,000名以上
・受講生の学習完了率98%
・受講生の転職成功率99%

侍エンジニアをおすすめする最大の理由は「挫折しづらい学習環境」にあります。

先ほど述べたとおり、独学者の多くは自力で不明点やエラーを解決できないためにプログラミング学習を挫折しています。そのため、未経験者が現役エンジニアのようなプロに質問や相談できない状況で、プログラミングスキルを習得するのは非常に難易度が高いといえます。

しかし、侍エンジニアでは

  • 現役エンジニア講師によるマンツーマンレッスン
  • 現役エンジニアに質問できるオンラインでのQ&Aサービス
  • 不安や悩み・勉強の進み具合を相談できる学習コーチ

といったサポート体制を整えているため、学習中に出てきたわからないことや不明点をいつでも相談可能です。「受講生の学習完了率98%「転職成功率99%」という実績からも、侍エンジニアなら挫折しづらい環境でプログラミング学習を進められるといえます。

また、侍エンジニアではカウンセリングにて受講生一人ひとりの目的をヒアリングしたうえでカリキュラムを作成するため、限られた受講期間でもITエンジニアへの転職や副業での収入獲得に必要なスキルだけを効率的に習得可能です。

最短距離で目的を実現できるようカリキュラムが組まれているため、勉強する順番や内容を誤り非効率に時間や手間を費やす心配もありません。

なお、侍エンジニアでは最大70%OFFで受講可能な給付金コースを提供中。金銭面での支援を受けつつ、理想のキャリア実現に向けたスキルの習得から、転職活動・就業後のフォローアップ(※1)までを一貫してサポートしてもらえます。

※1:転職後の1年間、転職先での継続的な就業や転職に伴う賃金上昇などのフォローアップ

学習と金銭面をどちらもサポートしてくれる侍エンジニアなら、未経験からでも安心してITエンジニアへの転職や副業での収入獲得などの目的が実現できますよ。

公式サイトで詳細を見る

まとめ

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

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

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

この記事を書いた人

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

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!
侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

目次