今日はExcelのマクロ (VBA)について、それがどんなもので、どのように役に立つのか、自分の経験を多めに入れつつ、書いていきます。
Excel マクロ (VBA)を知っていますか?
皆さんはExcelの”マクロ“または”VBA“を知っていますか?
– 聞いたことないし怖い!
– 何となく知ってるけど、自分には関係のない世界。。
そんな声が聞こえてきそうです。
でもちょっと待ってください。Excel マクロ(VBA)は、あなたの仕事の効率を大幅に改善してくれる可能性があるんです。
もしあなたが今Excelの単純作業に嫌気がさしているなら、特に役立つ可能性があります。
– でもそんな難しそうなこと (よくわからないこと) 自分には絶対無理
そんな声も聞こえてきました。笑
でも大丈夫です。
私も、つい数年前まで全く知りませんでした。
著者が マクロ(VBA)と出会ったきっかけ
きっかけは仕事の担当が変わり、同じ営業職なのに業務内容がガラッと変わってしまったことです。それまでは営業”あるある”のウェットな世界で、どうしたら売り上げを伸ばせるか、販売戦略を日々考えていました。
しかし、担当変更でそれが一変。
雑務と言っても過言でない単純作業の山が押し寄せてきました。
特に大変だったのがエクセルの作業。今後詳しく紹介していきますが、非人道的と言えるような作業も多くありました。
それがあまりにも大変で、かつ精神的に消耗してしまった時、何かを変えないといけないと必死に調べ、辿り着いたのがマクロ(VBA)でした。
詳しくは今後少しずつ書いていきますが、Excel上の単純作業を人間がやらずに、Excelさんに代行してもらうイメージです。
そもそも、マクロ(VBA)って何?
初めて言葉を聞く人もいるかもしれませんので、極力わかりやすく、感覚的な話を多めに書きます。 あなたの業務でも使えそうかどうか、想像しながら聞いてみてください。
マクロとは何か
マクロという言葉は聞いたことがある人もいると思います。辞書で引くと”巨視的”とか出てきて、何のことかさっぱりですね。経済学を勉強したことがある人であれば、マクロ経済・ミクロ経済という言葉が親しみがあるかと思います。
イメージとしては、あるプログラミング言語によって書かれた小さな命令を繰り返していき、最終的に大きな(=マクロな)命令を実行するプログラムのことと理解してもらえればわかりやすいと思います。
何でもいいのですが、例えば以下のようなイメージです。例がチープですが。。
小さな命令1 “セルA1に3を投入しろ”
小さな命令2 “その下のセルに4を投入しろ”
小さな命令3 “さらにその下のセルに3を投入しろ”
小さな命令4 “上の3つを合計しろ”
小さな命令5 “合計した値を太字にしろ”
=>大きな命令完成
VBAとは何か
マクロは何となくイメージがついたでしょうか。次はVBAについて説明します。
上でマクロについて、あるプログラミング言語によって書かれた命令、と書きましたが、そのプログラミング言語こそがVBAです。
…とはいえ、プログラミング言語なんて言われたら拒否反応しか出ない人も多いと思うので、もう少し説明します。そんなに難しい話ではないです。
皆さんの多くは日本人で、日本語を話すと思います。
アメリカ人やイギリス人は英語を話す人が多く、フランス人はフランス語を話す人が多いですね。
こういった人間の言語と同じように、パソコンで何か命令を書くための言語にも様々種類があり、それぞれに目的があります。
有名なものにはC言語とかJava scriptとか、名前を聞いたことがある人もいると思います。
その中でVBAとは、Visual Basic for Applicationsの略で、要するにMicrosoft社が自社のアプリであるExcelやWordに使う目的で開発したプログラミング言語です。
だから、VBAで記述した命令=マクロをExcel上で動かせば、問題なく命令通りに動いてくれるというわけです。
関数による自動化との違いは?
さて、Excelでの作業を効率化する手段としては、マクロよりも関数を思いつく人が多いと思います。私自身、関数もマクロも頻繁に使います。どちらも作業の効率化のために欠かせないツールです。
では関数による自動化とマクロによる自動化の違いはなんでしょうか。
その本質的な違いは、規模感の違いでしょう。
関数は、セルに投入するものです。様々なセルを参照して計算するとしても、その結果を反映できるのはあくまで一つのセルのみ。それを自動で別のセルに反映させることはできません。
それに対してマクロでは、条件を明確にすることで、セルやシートという枠を超えて、ダイナミックに処理をすることができます。
どちらがいい悪いとか、必要不要ということではないので、状況に応じて関数やマクロを使い分けて、仕事の効率化を目指しましょう。
コメント