普段、会社員でも学生でも、また私生活の中でもExcelを使った方は多いのではないでしょうか?
Excelでできることとして、表計算であったり、データ分析であったりと汎用性も高くなり、ビジネスシーンでは特に使用する機会は多いと感じます。
ですが、例えば毎日、毎月の経理データの集計や実績データの集計や加工など、定型的に行う作業に時間がかかっているという経験をした方もいらっしゃるかと思います。
そんな経験をされた方へ、今回はExcelでの操作を自動化する「マクロ」、そしてVBAについて解説していきます。
マクロとは?VBAとは?
マクロとは、
「エクセルでの一連の作業を自動化する機能」
です。
一連の作業って??となるかもしれませんが、
例えばビジネスシーンで考えてみた時、
・取引先の企業や顧客からの請求書を管理簿に集計する作業
・特定の部署や業務センターで行われている業務処理や受入数の管理
など、日々ルーチンワークとして行う業務は少なくありません。
こうしたルーチンワークを人の手で行っていると、何百というデータを1ファイルにまとめたり、逆に1ファイルにあるデータを複数のファイルに分割したりといった作業は地味に時間がかかったりします。
こうした地味でも時間のかかるルーチンワークを自動化して、一瞬で終わらせてくれる機能が「マクロ」です。
では、このマクロとは、どのようにしたら使えるのでしょうか?
マクロの作り方として、2つの手法があります。
① 「マクロの記録」を使って作成
エクセルの「開発」タブから、「マクロの記録」というボタンをクリックして、マクロを作製することができます。(下記の図を参考にしてみてください。)
マクロの記録ボタンをクリックして、自動化したい操作を実際に行い、記録の停止をするだけで簡単にマクロが作れる一方で、
・手動での操作ができないと記録できない。
・マクロ自体に無駄が多くなってしまう。
といったデメリットもあったりします。
そこで、もう一つのマクロの作成方法があります。
② VBAを使って、マクロを作成する
VBA??何それ?と感じる方もいらっしゃるかと思います。
VBA(Visual Basic for Applications)とは、Excelのマクロ機能を作り出している、プログラミング言語です。
上記の「マクロの記録」で作られたマクロも、その中身はVBAというプログラミング言語から作成されています。
プログラミング言語というと、難しそうに感じますが、VBAの言語としてはほぼ英単語が使われています。(下記の図は実際のVBAを記述したものです。)
とは言っても、プログラミング言語と聞いてアレルギー反応を起こしたり、何が何だかわからないという方も多いでしょう。
この記事の最後にて、学習方法についても触れますので、参考にしてみてください。
マクロでできること
マクロとは、一連の作業を自動化する機能と紹介しましたが、実際にはどんなことができるのでしょうか?
ここでは、何個か例をお伝えしていきます。
① 複数のファイルやシートのデータを1ファイル(シート)に集約する。
ビジネスシーンでも複数のファイルやシートのデータを1ファイルに集約する作業は少なくありません。
例えば、前述の請求書のデータを管理簿へ登録する作業もこの例に含まれる場合が多いかと思います。
こうした複数ファイル(シート)のデータを1ファイルに集約することはマクロで行うことができます。
逆に1ファイルのデータを複数のファイルやシートへ分割する作業も同様にマクロで行うことができます。
② ユーザーフォームからExcelにデータを便利に入力する
マクロでは、一連の作業を自動化させるだけでなく、Excelを便利に操作する機能もあります。
それがユーザーフォームという、簡単に言えば操作パネルのような機能です。
このユーザーフォームを使用することで、データを入力する使用者が迷ううことなくデータを入力することができたり、パソコン慣れしていない人でもデータを入力しやすくすることができます。
自動化するだけではなく、こうした使用者が利用しやすくすることにもマクロを活用することができます。
この2例以外にも、
・Excel以外のOfficeソフト(Word、Outlook、Powerpoint)からデータを抽出したり、
逆にExcelからデータを挿入したりする。
・Webブラウザから、サイトの情報を取得する。
Excelから特定のサイトに自動でログインする。特定のワードを検索する。
など、様々なことを行うことができます。
なぜマクロやVBAは必要なの?
ここまで、マクロとVBAについて解説してきましたが、なぜマクロやVBAが必要になるのでしょうか?
2つのメリットがあります。
① ルーチンワークを自動化して、効率化する
日々行うルーチンワークを自動化することで、効率化を行うことができます。
例えば、普段手作業で行っている作業が1時間かかっていたものも、VBAでマクロを作ることで5~10分で終えることができたら、とても楽になりますよね。
マクロではこうした自動化を行い、ルーチンワークの効率化。
そして生産性の向上に活用することができます。
② 手作業からマクロで自動化することで品質向上へ
マクロで自動化することで、「効率化」や「生産性向上」というメリットに目が行きがちですが、
実は「品実向上」にも関わります。
例えば、数百もあるデータを手作業で別のシートやファイルにコピー&ペーストを行ったとします。
時間もかかりますが、それ以上にヒューマンエラーによってコピー&ペーストを間違ったり、同じデータを転記してしまったり…といったことが起こりかねません。
一方で、マクロはVBAを正しく記述していれば、自動的にコピー&ペーストで転記を行うため、効率的かつ間違いを発生させずに作業を終えることができます。
マクロでは、ルーチンワークの「効率化」と「品質向上」が大きなメリットであり、これこそがマクロの機能を使うための目的にもなりえます。
そんなマクロですが、作成するためにはどうしてもVBAの知識やVBAを記述することが必要となってきます。
このVBAについて、どのように学習したらよいのでしょうか?
どのように学習する?
いざ、Excelマクロを作るためにVBAを学習しようとしても、どこから手を付けていいのかわからないという方も多いのではないでしょうか?
とりあえず、本を買ってみて読んで学習しよう…というのは個人的にはお勧めしません。
なぜなら、2つの理由があるからです。
① 内容が理解できないときに聞ける人がいない
VBAやプログラミングを学習している際につまずくポイントに、コードの内容やどんなコードを記述すればいいかわからないときに、「聞ける人・相談できる人がいない」ことがあげられます。
こうした時に、理解できずにもやもやしたまま学習を進めるとモチベーションが下がってしまい、継続的に学習できず、最終的に離脱してしまうことにもつながってしまいます。
② 効果的なアウトプットができない
VBAやプログラミングを学びたいと思った経緯には、何かしらマクロを作りたい!システム開発をしたい!といったきっかけがあるのではないでしょうか?
学ぶことのきっかけとしては素晴らしい事ではありますが、いきなりマクロやシステムを作ることを目標にするのはお勧めできません。
なぜなら、学習した内容に対するアウトプットの目標があまりにも高すぎると挫折につながってしまうからです。
多くのVBAコードを学習し、いきなり本格的なマクロを作ろうとしてもなかなかうまく進められないことが多々あります。
マクロを作るという目標を持つことは大切ですが、学習したことを効果的にアウトプットするには、達成度合いに応じたアウトプットを繰り返し、スキルを定着化させていく必要があります。
では、どのように学んだらいいのでしょうか?
私のおすすめは「Udemy」というオンライン学習サービスを利用してみることです。
プログラミングスクールなどに通おうとしても、
・スクール代が結構かかる…
・通うのが面倒…
なんてこともあるかと思います。
Udemyでは、e-ラーニング形式で動画を視聴しながら学習することができます。
また、コンテンツでは学習しながら実習形式で簡単なアウトプットを繰り返しながら学ぶこともできる。
かつ、「Q&A」という機能を使うことで講師にわからない点を質問することも可能です。
Udemyでは、サブスクリプション型ではなく、1コンテンツ買い切り型ですので月額費用が掛かるわけではありません。
では、そのコンテンツのお値段は…大体1万円~2万円前後が多いです。
「高い…」
と思われる方もいらっしゃるかもしれません。
ですが、Udemyでは頻繁にセールを実施しており、
90%引きでコンテンツが販売されていることが多いです。
私も1万円前後のコンテンツを1,600円~2,000円くらいで購入しています。
本を1冊買うのとそんなに差があるわけではないです。
VBAをこれから勉強してみよう、学習してたけど挫折してしまったという方はUdemyのようなe-ラーニング形式での学習を行ってみると効果的かもしれません。
まとめ
マクロとは?VBAとは?
マクロは「エクセルでの一連の作業を自動化する機能」
VBAは「Excelのマクロ機能を作り出している、プログラミング言語」
マクロでできること
一連の定形的な作業(複数ファイルから1ファイルへのデータ集約)やユーザーフォームを使って、便利にデータを入力できる。
なぜマクロやVBAは必要なの?
ルーチンワークを自動化して、[効率化すること」やヒューマンエラーを防ぎ、「品質向上すること」ができるため。
どのように学習する?
Udemyのようなe-ラーニングを活用して学習してみましょう。
VBAを理解し、マクロを作れるようになると日々時間のかかっていたルーチンワークもすぐに終わらせることができるため生産性の向上にもつながります。
一方で、なんでもマクロで処理すればいい…というわけでもなく、やはり目的あった使い方が求められます。
VBAやマクロの作り方を学ぶとともに、「どんな場面でマクロが使えるか?」を精査できるよう、思考法も養っていくことを心掛けてみましょう。
コメント