Excelマクロとは?VBAとの違いや基本の使い方、できることを解説
普段のルーチン業務の自動化や業務効率化に役立つExcelマクロですが、簡単そうで意外と使いこなすのが難しいのが現実です。
今回の記事では、人によって解釈が微妙に異なり、理解があいまいになりがちなExcelのマクロの定義や基本的な使い方、VBAとの違いなどを解説します。
顧客管理やレポートの作成業務の効率化につながるヒントもお届けしますので、ぜひ参考としてください。
マクロとは?機能の概要を解説
マクロとは、「複数の小さな処理をまとめて実行できるように保存し、いつでも簡単に呼び出せる機能」と定義できます。
Excelのマクロ機能が広く知られているため、マクロと言えばExcelをイメージする方が多いでしょう。しかし、同じMicrosoft社のWordやPowerPointにもマクロ機能はあり、他にも名称は異なるものの、さまざまなアプリケーションにマクロ機能は搭載されています。
Excelの基本操作からおさらいしたい方は、以下の記事も参考にしてください。
Excel(エクセル)の使い方・基本機能を初心者向けに解説【2024年版】
VBAとマクロの違い
VBAとマクロの違いについては、細かい定義を気にしすぎる必要はありません。あくまでも基礎知識として、VBAとマクロ、マクロ記録の違いを押さえておきましょう。
VBAとマクロ
マクロと混同されて理解されがちなVBAですが、VBAは、マクロでまとめられる処理内容を記述するためのプログラミング言語のことです。
マクロが「小さな処理をまとめるための箱」だとすると、VBAは一つひとつの処理を記述するためのものと理解できます。
VBAとマクロ記録
マクロの定義をややこしくしているのが、Excelを代表としたMicrosoft Office製品にある「マクロ記録」機能です。
マクロ記録は、手動の操作をVBAの記述として記録してくれる簡易プログラミング機能といえますが、その名称から一般的なマクロ機能と混同されがちです。
簡単な作業であればマクロ記録でも十分、処理を作成できますが、条件分岐などを含めた複雑な処理は記録できません。
マクロでできる業務効率化
マクロを利用することで、ルーチン業務を自動化・効率化することが可能です。ここでは、普段、手作業で行っているような業務を、マクロによって効率化できる具体例を挙げてみました。
なお、ここでご紹介する効率化には、マクロ記録ではなく、VBAを使った簡易的なプログラミングが必要になることがほとんどです。
ファイルをまとめる:各部門から上がってきた売上予測を一つにまとめる
マクロでは、複数のファイルを一つにまとめてデータを集計するようなファイル操作処理を実行できます。
たとえば、四半期ごとに各部門から上がってくる予算や売上予測などの複数のExcelファイルを一つにまとめて、レポート作成までを一気に行う、といった使い方が可能です。
同じように、展示会ごとに名刺情報が別々のファイルに保存されたExcelファイルを、顧客管理用のExcelに一気に転記する、といったこともできます。ファイルをまとめる際には、ファイルの形式をそろえておくことがポイントです。
顧客管理をExcelで行う方法については、以下の記事で詳しく解説しています。
顧客管理はExcel(エクセル)でできる! 作り方や無料テンプレートを紹介
一括印刷:請求書などの一括印刷
マクロでは、蓄積されたデータをもとに決まったフォーマット・特定の書式に沿って、繰り返し印刷するような処理を実行できます。たとえば、売上管理表をもとに請求書を取引先ごとに印刷する、といった使い方が可能です。
直接印刷するのではなく、PDFとしてフォルダに保存するような使い方もできます。
売上管理や請求書管理を効率化したい場合は、SFA(営業支援システム)を導入するのも効果的です。
メール一括送信:セミナー参加予定者に案内メールを送信する
マクロでは、シートに保存された顧客情報(氏名、メールアドレスなど)をもとに一括メールの送信処理を実行することもできます。
たとえば、毎月開催されるセミナー参加者名簿をもとに、ボタン一つで事前案内メールを送信する、といった使い方ができます。
ただし、マクロでのメール送信では、到達率が低くなりがちだったり、送信ミスが起きやすいといった問題もあります。動作確認を行ったり、毎回テスト送信を行うといった運用の流れを考慮することが必要となりますので、注意しましょう。
顧客管理に特化した機能を求める場合は、CRM(顧客関係管理)ツールを導入するのも1つの方法です。
CRMとは?機能・メリットや選び方、活用のコツをわかりやすく解説
同一ファイル内でのデータの転記
マクロでは、あるシートに保存された情報を別のシートに転記する処理を実行できます。
たとえば、月初になると前月の売上明細データを年ごとの集計データのシートに手動で転記している、といった場合に、転記作業を自動化して年間売上推移レポートを作成する、という使い方が可能です。
ただし、過去複数年にわたる膨大なデータを扱おうとすると、処理時間がかかりすぎたり、ファイル自体が重くなってなかなか開けない、などの問題が発生することがあるので、注意しましょう。
マクロの作成方法
Excelでの具体的なマクロ作成の方法として、
- A列にあるデータをコピー
- C列に貼り付け
- テキストを太字にする
という処理を作成してみます。
なお、マクロを保存して実行するためには、Excelのファイル形式を拡張子「xlsx」から「xlsm」形式(マクロ有効ブック)に変更する必要があります。
マクロ記録での処理の作成方法
Excelの開発タブを選択
エクセルの上部のリボンにある「開発」タブを選択します。リボンの中に「マクロの記録」というメニューがあることを確認します。
「開発」タブがリボンに存在しない場合には、「ファイル」の「オプション」メニューからリボンの設定を変更して表示させましょう。
「マクロの記録」をクリックして記録を開始する
「開発」タブにある「マクロの記録」メニューをクリックします。マクロ名などを設定するポップアップメニューが表示されるので、必要に応じて名前を変更し、OKボタンを押します。
保存したい操作を実行する
記録が始まったら、記録したい操作を実際に行います。ここでは、A2セルの内容をコピーして、C2セルに張り付けて、文字を太字にしてみます。
記録を終了する
作業が終わったら、「記録を終了する」メニューをクリックします。
保存したマクロを実行する
「マクロ」メニューをクリックすると作成したマクロ一覧が表示されます。先ほど作成したマクロ名を選んで「実行」ボタンをクリックします。
今回の手順で作成したマクロでは、A2セルをコピーして、C2セルに張り付ける作業を繰り返すので、今回のサンプルを確かめる際には、一旦、C2セルのテキストを削除してから実行しましょう。
保存されたマクロの内容を確認する
「マクロ」メニューをクリックすると作成したマクロ一覧が表示されます。先ほど作成したマクロ名を選んで「編集」ボタンをクリックすると、手動で行った作業がコードとして保存されていることを確認できます。
注意点
マクロ記録では、手動で行った作業をそのまま記録してしまうので、A3セルをC3セルにコピーするように、セルの位置をずらした作業を繰り返したい場合には、「相対参照で記録」メニューを使って作業を記録する必要があります。
VBAで処理を記述する方法
Visual Basicボタンをクリック
マクロ記録と同じようにリボンの「開発」メニューを選択し、「Visual Basic」ボタンをクリックします。
Visual Basicエディターにモジュールを追加しコードを記述
Visual Basiceエディターが別ウィンドウで立ち上がります。「挿入」メニューから標準モジュールを追加して、コードを記述し保存します。
マクロ記録でマクロを作成している場合には、標準モジュールの追加は不要です。
保存したマクロを実行する
保存したマクロの実行方法は、マクロ記録と同じです。
なお、マクロは作成方法に関わらず、シート内にボタンを設置してマクロを関連付けることで、ボタンをクリックしただけで実行させることもできます。
マクロ(VBA)の学び方
マクロについてなんとなく理解できても、実際に使いこなそうとすると思ったよりもハードルは高いものです。どこから手を付けてよいかわからない方は、ぜひ、以下のステップを参考にマクロやVBAを学んでみてください。
書籍やインターネットで基本を学ぶ
まずは、基礎的な知識を書籍やインターネットなどで学びましょう。偏った知識では、もっと簡単なやり方や、いいやり方があっても気付かないこともあります。
書籍やオンライン学習のコンテンツなどが体系的に学習できるのでおすすめです。
インターネットで公開されているコードを利用
ある程度、基礎が身についたら、インターネットで公開されているコードを参考に処理を作成してみましょう。よく使われる処理などは、上手く検索するとそのまま利用できるコードが公開されていることもあります。
悪意のあるコードがないかなどには注意をしながら、マクロを作成して慣れていきましょう。
自社の業務に合わせて改善し応用
マクロを使った効率化を進めていくと、公開されたコードをそのまま利用するだけでは、実現したい機能を満たせないことも多くなっていきます。
そのまま利用できるコードはなくても、一部を修正するだけで機能を満たせることも多いので、複数のコードを組み合わせて機能を実現してみましょう。これまでに学んだ知識を使って自分で必要な修正を行えるようになれば、さまざまな業務の効率化を推し進めることができます。
「社員の働き方を見直し、組織の業務効率化を実現したい」とお考えの方は、以下の記事も参考にしてください。
マクロ以外の業務効率化ツール
マクロ機能を活用することで、業務の自動化や効率化を図ることができますが、マクロ以外にも処理の自動化や業務効率化を実現できるツールは複数あります。
マクロの活用は、作成していた人が異動したり、転職すると使えなくなってしまう属人化のリスクが常にあるため、メンテナンスなども含めて自社の状況にあったツールを選択する必要があります。
ここでは代表的なツールのカテゴリを3つご紹介します。
RPAツール
マクロで業務効率化を行う場合、VBAによるプログラミングは避けて通れません。
プログラミングに対応できる人材が少ない組織や、自分で処理を作成するのが難しいと感じる方には、RPA(ロボティック・プロセス・オートメーション)の導入も選択肢に挙がってきます。
RPAツールではマクロ記録と同じように、普段行っている手作業をプログラミングなしでそのまま自動化してくれる機能を提供しているので、導入のハードルは比較的、低いといえます。
ただし、RPAツール用のPCを用意する必要があったり、RPAツールのライセンスが必要であったりと、一定のコストがかかることには注意してください。
ノーコード系ツール
RPAと同じように、プログラミングなし(ノーコード)で業務を自動化できるツールのカテゴリーをノーコード系ツールと呼びます。厳密にはRPAとの区別が難しい部分もありますが、代表的なものとしては、Microsoftのノーコードツールである「PowerAutomate」などがあります。
ノーコードツールでは、よく使われる処理が部品として用意されており、部品を組み合わせてプログラミングなしに一連の処理を作ることができるのが特徴です。
RPAでは、すでにあるアプリケーションの操作などを自動化するのが主な利用方法ですが、ノーコード系ツールでは、新たなアプリケーションの作成を効率化するイメージです。
業務アプリケーション
特定の業務を行うための機能を提供するソフトウェアです。たとえば、顧客管理を行うためのCRMツール、商談管理を行うためのSFAなどが挙げられます。
特定の業務に特化した機能をクラウドサービスなどで提供する形態が多く、すでに完成している機能を使うことができるのが特徴です。
自分たちで処理を作成する必要がなく、多くの企業で利用されている機能や業務の流れを比較的、短期間で自社に導入することができます。特定の業務を効率化したい場合に、検討すべき選択肢といえるでしょう。
以下の記事では、おすすめのCRMツールを10種類厳選して紹介しています。
CRM(顧客管理システム)のおすすめ10選!選び方や運用のポイントも解説
マクロで業務効率化を実現しよう
ルーチン業務の自動化や業務効率化に役立つExcelマクロについて解説してきましたが、活用のイメージは持てたでしょうか?
手作業で行っていた作業を短時間で処理できるマクロは、業務効率化を実現する低コストなツールです。
ただし、マクロは便利な反面、開発やメンテナンスに一定のスキルが求められることから、業務の属人化やブラックボックス化に繋がりかねないリスクもあります。
顧客管理や商談管理など特定の業務の効率化を図る場合には、CRM/SFAツールなどの業務アプリケーションを導入することで、短期間での業務効率化の実現とメンテナンス性の確保を両立できることがあります。ぜひ、検討してみてください。