【初心者必見】エクセルVBA・マクロでできることって?活用例で解説

こんにちは!侍エンジニア塾ブログ編集部です。

VBAを使うと繰り返し作業を自動化できて、作業を効率化することができます。また、作業を自動化することで、入力ミスなどの人為的ミスを減らすこともできます。

手入力するには、量が多すぎてきつい・・
数字ばかりで、本当に正確に入力できてるか分からない!

普段の業務でこのような悩みを抱えている方も多いですよね。

そんな時に仕事に活かそうとExcelVBAを学習していく時に知っておくと便利なのが、「ExcelVBAでがそもそもなにができるのか?」ということ。

これがわかっていると、逆算的に効率よく学習することができますし、仕事への活用幅がグンと広がります。そこで今回は、初心者でもわかりやすいようにExcelVBAでできることを実際の活用例と共にご紹介します!

具体的な活用例なども説明していますので、これからExcelVBAを使いこなしていきたい!という方は必見の内容になっています。

そもそもVBAとは?

VBAとは、Excelなどの操作を自動で行うためのプログラム言語です。

VBAを使ってプログラムを作成することで、同じ処理の繰り返しや、定期的に行う一連の処理を自動化することができるので仕事の効率化に利用されています。

VBAはExcelで使われることが多いのでExcelVBAとまとめて呼ばれることが多いです。しかしVBAはPowerPointや、Outlook、Accessでも使うことができます。

「VBAとは何か」については次の記事で詳しく解説しているので、詳しく知りたい方はぜひ確認してみてください。

VBAとは?マクロとは?初心者向けにわかりやすくExcelVBAなどを解説
更新日 : 2019年5月3日

VBAで出来る事

VBAで出来る事は主に以下の4つです。

  • 繰り返し編集作業の自動化
  • メール送受信の自動化
  • WEB上の情報収集の自動化
  • 簡単なゲーム作成

それぞれ詳しくみていきましょう。

繰り返し編集作業の自動化

shutterstock_284294369

画像:shutterstock

冒頭でお伝えしたように、VBAではExcelシートでの繰り返し作業を自動化することができます。あなたが現在行っている繰り返し作業の内容もオリジナルの関数にすることができるのです。

すでにある関数を組み合わせたり、新たに処理を加えて、独自の関数を作ることができます。ユーザーが独自に作った関数を「ユーザー定義関数」といい、すでにある関数と同じように、Excelのワークシート上で使うことができます。

例えば、「たくさんの関数を使う複雑な処理が必要なもの」がある場合でも、それをあらかじめユーザー定義関数として作っておけば、それを呼び出すことで簡単に処理することができます。

またExcelシート上での作業をマクロで記録することで、すでにある関数を知らなくてもオリジナルの関数を作ることもできます。最初は少しイメージがし難いかも知れませんが、とても便利で、これだけでもVBAを習得するメリットがあると言えるくらいです。

メール送受信の自動化

shutterstock_309116819

画像:shutterstock

ExcelのVBAを利用すると、メールを送信したり、受信することもできます。

例えば、送信先を抽出してからメールを一括送信したり、メールの件名や本文に氏名を自動挿入するなどの使い方ができます。

一括送信する場合に、メールアドレスを1つずつ選択したり、本文中の氏名を1つずつ変更する作業を手作業でする必要はありません。すべてVBAが処理してくれてあなたがする作業は送信時間を指定するくらいです。

もちろんメールを受信することもできるので、Excelのワークシートに保存することもできます。また、メールの本文から情報を切り出し、列ごとに分けることも可能なので、いろいろと活用することができそうですね。

WEBサイトの情報を自動で収集

shutterstock_318693851

画像:shutterstock

ExcelVBAでは、WEBサイトの情報を自動で受信することもできます。

もちろん、XMLのデータなども受信できます。最近では、XMLを提供しているWEBサービスやブログが増えてきたので、活用の幅が広がりますね。

例えば、ExcelでオリジナルのRSSリーダーなんかを作ることもできます。

さらに、ネットショップのWEBサービスAPIを使えば、Excelで商品情報(XML)を取得して加工し、オリジナルのネットショップを構築することなんかもできます。身近な例では、楽天ウェブサービスAPIなどが有名ですね。

ゲームを作れる

ExcelのVBAを使いこなすと、アクションゲームを作ることも可能です。ゲームを作る過程で、ExcelVBAだけでなく、他にも応用できるプログラミングの土台が学べるので、一石二鳥です。

具体的な活用例

shutterstock_286174898

画像:shutterstock

まだ少しイメージしづらいという方に向けて、上で説明してきたExcelVBAでできることをもとに、具体的な活用例をいくつかご紹介します。

在庫数集計を自動化

Excelのシートでは集計作業をすることがよくあります。集計作業は例えば毎月末など時期を分けて同じような作業を繰り返す代表的な事例です。

毎回同じような作業をする度にウンザリというあなたにとってVBAで作業を自動化する方法はきっとお役に立てる活用例だと思います。ここでは商品の在庫情報を自動で集計する例をみていきます。

まず商品の在庫情報をエクセルに抽出します。エクセル側では、毎日の確定在庫を記録して、月度ごとに在庫変動推移が確認できるようにしておきます。

さらに、適正在庫設定をチェックする仕組みを組み込んで、適正在庫を切った段階で、セルに色がつくように設定しておきます。そうすると、いちいち在庫確認をしなくても、半自動的に在庫状況や適正在庫数などを把握することができます。

このような売上管理システムを題材に、実際にシステムを構築していく内容が学べる書籍もあるので、合わせて目を通してみると良いでしょう。

アプリ作成で学ぶExcelVBAプログラミングユーザーフォーム&コントロール

情報配信ロボット

shutterstock_430016107

画像:shutterstock

ExcelVBAを使うと、簡易的ですが個人で情報配信サービスを作ることもできます。お気に入りのブログからオリジナルのRSSリーダーで情報を収集し、抽出した情報をまとめてメールで送信するといった形になります。

RSSリーダーで情報を収集するのも、メールで送信するのも、VBAを使って自動でできるようになります。手作業は一切必要ありません。

ExcelVBAでは、XMLを処理することができるので、まずお気に入りのブログなどを登録しておいてRSSリーダーを作成してみます。今度はメールの送受信機能を使って、特定のアドレスに、RSSリーダーから抽出した情報をまとめて送信することができます。

VBAで出来ない事は?

shutterstock_700370347

画像:shutterstock

これまでは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を使う方法は次の記事を参考にしてください。

パワーポイントマクロ・PowerPoint VBAの使い方

Outlookで使う方法

OutlookでVBAを使うと、メールのフォルダ分けなどを自動化することができます。OutlookでVBAを使う方法は次の記事を参考にしてください。

OutlookでVBAを使ってみる(基本編)

Accessで使う方法

AccessでVBAを使うと、データベースの操作を自動化することができます。AccessでVBAを使う方法は次の記事を参考にしてください。

Access VBA 入門講座

VBAを学ぶべき学習対象者とは?

ここまでVBAでできることをご紹介してきました。

VBAを学ぶべき人は、

  • エクセルを多用する事務職の人
  • エクセルのデータ処理を自動化したい人
  • エクセルでの計算を正確に行いたい人


といった方々です。当てはまる項目はありましたか? もし当てはまる項目がないという場合は、もしかするとあなたの目的とVBAは合わない可能性があります。もし、目的と違うのに学習を始めてしまうと「学習すること」が目的に変わってしまい、途中で躓いたとき挫折してしまう恐れがあります。

まずは、あなたの目的にあったプログラミング言語が何かいま一度考え直してみてはいかがでしょうか? こちらのプログラミング学習診断を使うことであなたの目的に合ったプログラミング言語を最短1分で診断することができます。ぜひご活用下さい。
さっそく診断してみる

VBAの習得方法

独学で学ぶ

VBAはコツコツ続ければ独学でもある程度習得することができます。最近は本以外にも、無料学習サービスなども多くありますからね。

ExcelVBA入門者必見!おすすめの入門サイトを5つまとめました!
更新日 : 2019年6月25日

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

より詳しい学習方法は以下の記事にまとめてあるので、独学したい人は読んでみてください。

【初心者必見】ExcelVBAのおすすめ独学勉強方法総まとめ!
更新日 : 2019年7月11日

スクールに通う

できれば最短で習得したい..!
いち早く仕事でバリバリ使えるようになりたい!

そう思っているあなたは、プログラミングスクールに通って習得すると言うのも一つの手ですよ。

徹底解説!VBAをスクールで学ぶべき理由とおすすめスクール5選
更新日 : 2019年7月22日

ExcelVBAを教えているスクールはたくさんありますが、その中でも弊社「侍エンジニア塾」では、生徒一人一人にフルオーダーメイドでカリキュラムを作成しているので、VBAにおいても無駄なく最短で実践的なスキルを身に着ける事が可能となっています。

まずはお気軽に無料体験レッスンをご利用してみてはいががでしょうか?

弊社随一のコンサルタントが、VBAを学んだ先のキャリアプランや、効率の良いVBA学習方法についてコンサルティングを致します。無料体験は対面(渋谷)はもちろん、オンラインでのご利用も可能となっているので、遠方の人でも活用していただけます。

以下のカレンダーから直接予約が可能となっているので、ま図はお気軽にご相談ください!

まとめ

いかがでしたか?

超便利なExcelVBAでできることをご紹介しました。

ExcelVBAには他にも数え切れないほどの機能がありますが、それらをすべて覚える必要はありません。

少し勉強して、少し知るだけでも、日常の作業効率が格段に上がります。

なので、今回の内容を少しでも参考にしていただいて、ExcelVBAを便利に使いこなしていきましょう。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

侍ブログ編集部

侍ブログ編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説