この記事では、エクセルマクロについて解説しています。
- エクセルマクロは便利ときくけれど、実際どのようなものなのだろう?
- 関数と何が違うのかな?
そんな疑問にもお答えする内容になっていますので、ご参考下さい。
本記事をまとめた動画は下記となりますので、是非こちらもご覧ください。
エクセルマクロについては、下記にまとめた記事もあります!
【まとめ記事】エクセルマクロのすべて!マクロとは?から作り方まで
エクセルマクロとは?
エクセルマクロとは
エクセルマクロとは、エクセルで行う処理を自動化できる機能のことです。
例えば、
- 「出荷一覧表」のファイルから「未出荷」になっているものだけを抽出する
- 抽出した未出荷のデータの必要情報だけ、「未出荷一覧」のエクセルファイルに転記する
- 毎日朝一番に、1・2の作業を必ず実施する
というような作業があったとすると、
- 「出荷一覧表」のファイルでフィルターをかけて「未出荷」ものだけに絞り、必要なところだけを選択してコピー
- 別のエクセルファイルを開いて特定の箇所を選択し、貼り付け。
といった作業を目視確認しながら毎日行う必要があります。
エクセルマクロを使えば、このような作業を1まとめにして自動化することができます。
作業は自動化されるため負担は大きく軽減されますし、データ抽出の条件をきちんと設定すれば、間違いを防ぐことにもつながります。
エクセルマクロとVBAの違い
マクロに関連して、「VBA」という用語をきくことがあると思います。マクロとVBAって何が違うの?ときかれることもあるため、簡単に解説します。
VBAとは、Visual Basic for Applicationsの略でプログラミング言語の一種です。
プログラミング言語といえば、C言語やJAVAなどをきいたことがあるかもしれませんが、VBAはMicrosoftのOffice製品に特化したプログラミング言語です。
Office製品、ですのでExcelだけでなくWordやパワーポイントも含まれます。VBA・マクロといえばExcelというイメージがありますが、Wordやパワーポイントでもマクロを組むことは可能です。
簡単にまとめますと、「マクロ」という作業を自動化した固まりの実態はVBAというプログラミング言語で書かれているということです。
VBAとマクロの違い
- VBA:Office製品に特化したプログラミング言語
- マクロ:処理を1まとまりにしたもの。処理として何をさせるのか、VBAで命令が書かれている
マクロの中身を見てみよう
マクロとVBAについて解説してきましたが、ここで少し具体的に見てみましょう。
例えば、ボタンを押すと「こんにちは」というメッセージが表示されるマクロが組まれているとします。
非常にシンプルですが、これも立派なプログラムです。このマクロの中身は下記のようになっています。
「Sub ~」と「End Sub」の表記は処理の最初と最後を示すため、今回の命令は
MsgBox "こんにちは"
の一文のみです。
「こんにちは」というメッセージボックスを出してね、という命令を記述しており、それをマクロ化しているということです。
エクセルマクロと関数の違い
エクセルマクロと関数は何が違うの?という疑問を目にすることもあるため、こちらについても簡単に解説しておきたいと思います。
関数というといくつか種類があるため、ここではエクセルがあらかじめ準備している関数(エクセル関数)という意味で進めます。
(SUM関数やAVERAGE関数などは使ったことがある方も多いと思います)
エクセルマクロは、これまで解説した通りVBAという言語で命令をすることで任意の処理を自動化することができます。つまり、処理させたい内容は自分で自由に考えることができます。
対して関数は、値を渡すことで決まった処理に対する結果を返してもらうものです。
例えば、
SUM関数であれば渡した値を合計した結果を返してくれますし、AVERAGE関数であれば平均した結果を返してくれます。逆に言えばそれ以外のことをやってもらうことはできません。
マクロと関数
- マクロ・・・任意の処理を自動化することができる
- 関数・・・決められた処理についての結果を得ることができる
少し混乱を招くかもしれませんが、マクロで関数を作ることもできるため、自動化の意味合いとしては関数の方がより狭いイメージです。
エクセルマクロを使うと何ができる?
マクロを使うメリット
エクセルマクロが便利なことは何となくイメージができたと思いますが、具体的にどんなメリットがあるのか?が一番気になりますよね。
例えば、工場での製品製造実績を日々記入しているような表があったとします。
日々この表は更新されていく中で、「工場A」で製造した実績だけを毎日別の表に転記したいとします。
日々更新されていく表に対して、場所が「工場A」であるものだけを抽出し必要な項目だけを転記するのはSなかなか大変な作業です。
マクロを使うことで、このような作業を自動化することが可能です。
何となくイメージ頂けましたでしょうか?
エクセルマクロを使う際の注意点
マクロを有効にしないと実行できない
最近のエクセルではマクロはデフォルトで無効になっています。
そのため、マクロを有効化しなければ実行することができません。
具体的な手順については下記の記事で解説していますので、参考にしてみてください。
【関連記事】エクセルマクロを有効にする方法&有効にならないときの対策
やり直しができない
エクセルマクロは、一度実行すると「元に戻す」などで実行前の状態に戻すことはできません。
そのため、テスト等で不用意に実行してデータをおかしくしたりしないよう注意しましょう。
間違いのチェックが必要
マクロで自動化すると、基本的には実行した際の結果しか表示されないため、実行した内容が期待するものと合っているかどうかはチェックする必要があります。
マクロの中でチェック機能を入れるか、重要事項は目視確認など入れるなどするようにしましょう。
修正についても考えておく
マクロの修正が必要になった場合、作成担当者が退職などでおらず誰も触れない・・・なんてことがあったりします。
そのような事態を防ぐため、マクロを修正することのできる担当者を複数名にしておく・システム部門に管理を担ってもらうなど先のことも考えておきましょう。
良かれと思って作った他の人のためのマクロが自分しか修正できず、修正が必要になる都度、業務負荷が増えてしまったというのは私自身の体験でもあります。
セキュリティ
マクロは危険、という論調で語られることがありますが、マクロ自体が危険ということはありません。
マクロを使って作られた悪意のあるプログラムを実行することは危険ですが、これはマクロに限らずインターネット上のよく分からないファイルを開いたり実行したりするのは絶対にやめましょう。
確実に信頼のおけるプログラムは業務をより便利にしてくれますので、この辺りはしっかりと意識して使うようにしましょう。