今回はExcelのマクロとVBAについて解説していきます。
この二つは「処理を自動化する」という観点からよく同じ物として扱われる事が多くありますが、厳密には違ったものです。
次の項目から2つの関係性と各概要ついてそれぞれ解説していきます。
マクロとVBAの関係性、各概要が分かる。
マクロとVBAの関係性
マクロとVBAの関係性は次の様に表す事が出来ます。
マクロ=VBA(プログラミング言語)で作成された機能
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
マクロはVBAで作成された「機能」を、VBAはマクロを作成する「プログラミング言語」をそれぞれ表しています。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
言葉にすると互いの違いが分かり易いですね。
マクロとは?
マクロとは一連の決められた手順を記録・自動的に実行する機能を指し、その処理の中身は後述するVBAというプログラミング言語で書かれています。
よく使用される「マクロの記録」機能は作業で行った内容を記録すると、その内容を自動でVBAへ変換してくれる為VBAの記述が分からなくても簡単に処理を作成する事が出来ます。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
マクロを作成する事で、間接的にVBAを扱っているんです。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
よく「マクロは作ったことあるけど、VBAは扱った事がない」と聞く事がありますが、間接的にはVBAを扱っていたんですね。
VBAとは?
VBAとは「Visual Basic for Applications」の略語でMicrosoft Office製品に備わっているプログラミング言語の事を指します。
使い方次第でデータの入出力や整理など様々な処理の効率化や自動化をさせる事ができ、比較的操作が簡単な事や他プログラミング言語の様に環境構築する必要がない事から手軽に始められOfficeの機能を拡張するのに役立ちます。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
簡単に言うと「Office製品上で動かすプログラムを作成する」為のプログラミング言語と言えます。
VBAを書くには下記2つの主要な方法があり、各々の目的処理によって使い分けて対応していきます。
- 「マクロの記録」機能を用いて、記録した処理を自動でVBAに変換して作成。
- 直接自分でVBAのコードを記述して作成。
次の項目では、それぞれの方法で処理を作成するメリット・デメリットについて解説していきます。
「マクロの記録」で作成するメリット・デメリット
「マクロの記録」で作成するメリットとデメリットは次の様にまとめられます。
「マクロの記録」は記録した処理をVBAに自動で変換→作成する機能で、データの整理や書式設定など処理をプログラミングスキル不要で簡単に作成することが出来ます。
一方で作業で行った内容全てを記録する為画面のスクロールなど本来は書かなくてもよい不要な動作を記録してしまったり、条件分岐やループ処理については記録する事が出来ないなどのデメリットが存在します。
直接VBAで作成するメリット・デメリット
直接VBAで作成するメリット・デメリットをまとめると次の様になります。
VBAを直接記述する事で条件分岐やループ処理も扱える他、変数や関数なども独自で定義・実行出来る為「マクロの記録」よりも複雑な計算や処理を扱う事が可能になります。
一方でVBAコードの記述にはプログラミングスキルが必要になり、最初はコード内容の理解が難しい事もあって覚えるまでに多少時間が掛かるといったデメリットがあります。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
どちらも便利ではあるけどそれぞれのメリット・デメリットがあるんですね。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
そうですね。
まずは「自分がどんな処理を行いたいか?」を明確にした上でそれぞれの手法を決めていく事が大事です。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
分かりました!
処理作成時の使い分け
「マクロの記録」と直接VBAでコードを書く事の使い分けについては目的の処理内容やユーザー自身のスキルレベルによって変わってくる為自分に合った方法を選ぶ必要があります。
- データの整理や書式変更など基本的な処理を作成したい場合
- プログラミングスキル不要で処理を作成したい場合
- 条件分岐やループ処理など「マクロの記録」でカバー出来ないより複雑な処理を作成する場合
- 処理の中で独自の変数や関数を組む必要がある場合
以上で解説を終了します。
普段何気なく使っているマクロやVBAですが、その中身を知る事でより理解が深まり「それぞれの使い所」や「問題解決の際に適切な手法をとれる」など対応出来る事が増えていき作業の効率化に繋がってきます。
最後までお読みいただきありがとうございました。
![](https://yuyu-techlife.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
![](https://yuyu-techlife.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)