こんにちは!侍エンジニアブログ編集部です。
VBAを使うと繰り返し作業を自動化できて、作業を効率化することができます。また、作業を自動化することで、入力ミスなどの人為的ミスを減らすこともできます。
数字ばかりで、本当に正確に入力できてるか分からない!
普段の業務でこのような悩みを抱えている方も多いですよね。
そんな時に仕事に活かそうとExcelVBAを学習していく時に知っておくと便利なのが、「ExcelVBAでがそもそもなにができるのか?」ということ。
これがわかっていると、逆算的に効率よく学習することができますし、仕事への活用幅がグンと広がります。そこで今回は、初心者でもわかりやすいようにExcelVBAでできることを実際の活用例と共にご紹介します!
具体的な活用例なども説明していますので、これからExcelVBAを使いこなしていきたい!という方は必見の内容になっています。
この記事の目次
そもそもVBAとは?
VBAとは、Excelなどの操作を自動で行うためのプログラム言語です。
VBAを使ってプログラムを作成することで、同じ処理の繰り返しや、定期的に行う一連の処理を自動化することができるので仕事の効率化に利用されています。
VBAはExcelで使われることが多いのでExcelVBAとまとめて呼ばれることが多いです。しかしVBAはPowerPointや、Outlook、Accessでも使うことができます。
「VBAとは何か」については次の記事で詳しく解説しているので、詳しく知りたい方はぜひ確認してみてください。


VBAで出来る事
VBAで出来る事は主に以下の4つです。
- 繰り返し編集作業の自動化
- メール送受信の自動化
- WEB上の情報収集の自動化
- 簡単なゲーム作成
それぞれ詳しくみていきましょう。
繰り返し編集作業の自動化
冒頭でお伝えしたように、VBAではExcelシートでの繰り返し作業を自動化することができます。あなたが現在行っている繰り返し作業の内容もオリジナルの関数にすることができるのです。
すでにある関数を組み合わせたり、新たに処理を加えて、独自の関数を作ることができます。ユーザーが独自に作った関数を「ユーザー定義関数」といい、すでにある関数と同じように、Excelのワークシート上で使うことができます。
例えば、「たくさんの関数を使う複雑な処理が必要なもの」がある場合でも、それをあらかじめユーザー定義関数として作っておけば、それを呼び出すことで簡単に処理することができます。
またExcelシート上での作業をマクロで記録することで、すでにある関数を知らなくてもオリジナルの関数を作ることもできます。最初は少しイメージがし難いかも知れませんが、とても便利で、これだけでもVBAを習得するメリットがあると言えるくらいです。
メール送受信の自動化
ExcelのVBAを利用すると、メールを送信したり、受信することもできます。
例えば、送信先を抽出してからメールを一括送信したり、メールの件名や本文に氏名を自動挿入するなどの使い方ができます。
一括送信する場合に、メールアドレスを1つずつ選択したり、本文中の氏名を1つずつ変更する作業を手作業でする必要はありません。すべてVBAが処理してくれてあなたがする作業は送信時間を指定するくらいです。
もちろんメールを受信することもできるので、Excelのワークシートに保存することもできます。また、メールの本文から情報を切り出し、列ごとに分けることも可能なので、いろいろと活用することができそうですね。
WEBサイトの情報を自動で収集
ExcelVBAでは、WEBサイトの情報を自動で受信することもできます。
もちろん、XMLのデータなども受信できます。最近では、XMLを提供しているWEBサービスやブログが増えてきたので、活用の幅が広がりますね。
例えば、ExcelでオリジナルのRSSリーダーなんかを作ることもできます。
さらに、ネットショップのWEBサービスAPIを使えば、Excelで商品情報(XML)を取得して加工し、オリジナルのネットショップを構築することなんかもできます。身近な例では、楽天ウェブサービスAPIなどが有名ですね。
ゲームを作れる
ExcelのVBAを使いこなすと、アクションゲームを作ることも可能です。ゲームを作る過程で、ExcelVBAだけでなく、他にも応用できるプログラミングの土台が学べるので、一石二鳥です。
具体的な活用例
まだ少しイメージしづらいという方に向けて、上で説明してきたExcelVBAでできることをもとに、具体的な活用例をいくつかご紹介します。
在庫数集計を自動化
Excelのシートでは集計作業をすることがよくあります。集計作業は例えば毎月末など時期を分けて同じような作業を繰り返す代表的な事例です。
毎回同じような作業をする度にウンザリというあなたにとってVBAで作業を自動化する方法はきっとお役に立てる活用例だと思います。ここでは商品の在庫情報を自動で集計する例をみていきます。
まず商品の在庫情報をエクセルに抽出します。エクセル側では、毎日の確定在庫を記録して、月度ごとに在庫変動推移が確認できるようにしておきます。
さらに、適正在庫設定をチェックする仕組みを組み込んで、適正在庫を切った段階で、セルに色がつくように設定しておきます。そうすると、いちいち在庫確認をしなくても、半自動的に在庫状況や適正在庫数などを把握することができます。
このような売上管理システムを題材に、実際にシステムを構築していく内容が学べる書籍もあるので、合わせて目を通してみると良いでしょう。
アプリ作成で学ぶExcelVBAプログラミングユーザーフォーム&コントロール
情報配信ロボット
ExcelVBAを使うと、簡易的ですが個人で情報配信サービスを作ることもできます。お気に入りのブログからオリジナルのRSSリーダーで情報を収集し、抽出した情報をまとめてメールで送信するといった形になります。
RSSリーダーで情報を収集するのも、メールで送信するのも、VBAを使って自動でできるようになります。手作業は一切必要ありません。
ExcelVBAでは、XMLを処理することができるので、まずお気に入りのブログなどを登録しておいてRSSリーダーを作成してみます。今度はメールの送受信機能を使って、特定のアドレスに、RSSリーダーから抽出した情報をまとめて送信することができます。

VBAで出来ない事は?
これまではVBAでできることについてお伝えしてきました。ではVBAで何でもできるかと言えば、そんなことはありません。
VBAにはできないこと、苦手なことがあります。VBAは多くのデータを速く処理することが苦手です。多くのデータというのは例えば数万個などを超えるデータのことです。
先ほどゲームを作れるとお伝えしましたが確かに簡単なゲームは作れますが、3Dグラフィックを使うなどの多くのデータを処理するゲームの作成には向きません。
数万個のデータを扱う場合にはSQL、多くのデータを処理するゲーム作成の場合はC++など目的にあったプログラミング言語がありますので、それらを使ってプログラミングをするようにしましょう。
苦手なことを無理にVBAでやろうとすると、処理が実行されなくなりフリーズすることもありますので注意してくださいね!また、VBAはExcelさえあればプログラミングできるメリットもありますが、それがデメリットとなる場合もあります。
VBAはExcelさえあれば、C言語やJavaのような他のプログラミング言語のように開発環境を整える必要がありません。しかし、Excel自体が主にWindowsで使うことを目的にしたアプリケーションであるため、MacOS版も用意されていますが、いくつか使用できない機能や不具合もあるようです。
まず、MacOS版のExcelではVBAが使えるのがExcel2011以降です。Excel2008以前では使えません文字化けや不要な文字が入る場合などもあります。
このようにWindows版ではできるけど、MacOS版のVBAではできずに制限を受けることもあるので、注意しましょう!
Excel以外でもVBA・マクロは使える
VBAはExcelで使われることが多いですが、それ以外の「Microsoft Office」でも使うことができます。Word、PowerPoint、Outlook、Accessで使う方法をそれぞれ解説していきます。
Wordで使う方法
WordでVBAを使えば定型文などの文書の作成を自動化することができます。WordでVBAを使う方法は次の記事を参考にしてください。
Word VBA入門の最初の一歩!マクロ作成準備の6つのステップ
PowerPointで使う方法
PowerPointでVBAを使うと、スライドの操作などを自動化することができます。PowerPointでVBAを使う方法は次の記事を参考にしてください。
Outlookで使う方法
OutlookでVBAを使うと、メールのフォルダ分けなどを自動化することができます。OutlookでVBAを使う方法は次の記事を参考にしてください。
Accessで使う方法
AccessでVBAを使うと、データベースの操作を自動化することができます。AccessでVBAを使う方法は次の記事を参考にしてください。
VBAを学ぶべき学習対象者とは?
ここまでVBAでできることをご紹介してきました。
VBAを学ぶべき人は、
- エクセルを多用する事務職の人
- エクセルのデータ処理を自動化したい人
- エクセルでの計算を正確に行いたい人
まずは、あなたの目的にあったプログラミング言語が何かいま一度考え直してみてはいかがでしょうか? こちらのプログラミング学習診断を使うことであなたの目的に合ったプログラミング言語を最短1分で診断することができます。ぜひご活用下さい。
さっそく診断してみる
VBAの習得方法
独学で学ぶ
VBAはコツコツ続ければ独学でもある程度習得することができます。最近は本以外にも、無料学習サービスなども多くありますからね。

おすすめの学習ステップとしては、「まずは気軽に学べる学習サイトを利用→その後書籍を使ってより理解を深める」と言う順番がいいでしょう。いきなり書籍に手を出すと挫折してしまう可能性もあります。まずは学習サイトで雰囲気を理解することから始めましょう。
より詳しい学習方法は以下の記事にまとめてあるので、独学したい人は読んでみてください。

スクールに通う
いち早く仕事でバリバリ使えるようになりたい!
そう思っているあなたは、プログラミングスクールに通って習得すると言うのも一つの手ですよ。

ExcelVBAを教えているスクールはたくさんありますが、その中でも弊社「侍エンジニア」では、生徒一人一人にフルオーダーメイドでカリキュラムを作成しているので、VBAにおいても無駄なく最短で実践的なスキルを身に着ける事が可能となっています。
まずはお気軽に無料カウンセリングをご利用してみてはいががでしょうか?
弊社随一のコンサルタントが、VBAを学んだ先のキャリアプランや、効率の良いVBA学習方法についてコンサルティングを致します。無料体験は対面(渋谷)はもちろん、オンラインでのご利用も可能となっているので、遠方の人でも活用していただけます。
以下のカレンダーから直接予約が可能となっているので、ま図はお気軽にご相談ください!
お急ぎの方はこちらからお問い合わせください。
読み込みに失敗しました。
大変お手数ですが、本ページを再度読み込んでください。
再度読み込んでも、読み込み失敗が起こる場合は
こちらからお問い合わせください。
カウンセリングはオンラインにて実施しております。
※予約完了後に、カウンセリングのためのURLやIDなどをメールにてご案内します
1.ご希望の日時を選択してください
2.必須事項を入力してください
まとめ
いかがでしたか?
超便利なExcelVBAでできることをご紹介しました。
ExcelVBAには他にも数え切れないほどの機能がありますが、それらをすべて覚える必要はありません。
少し勉強して、少し知るだけでも、日常の作業効率が格段に上がります。
なので、今回の内容を少しでも参考にしていただいて、ExcelVBAを便利に使いこなしていきましょう。