🧑‍🦯

マクロとは何か(マクロ全体の中でのVBA)

2022/11/14に公開

この記事ではマクロとは何かについて考えます。マクロ=VBAというイメージが一般的にありますが「マクロ全体の中でのVBA」という切り口からまとめてみます。

マクロとは?

まずマクロとアプリケーションの関係を考えてみます。元々マクロはExcelやVBAよりも広い範囲のことを指します。有名なテキストエディタやGoogle、Abode製品などを例に出しながらマクロという言葉の意味を考えてみます。

マクロとは何か

マクロとはアプリケーションの操作を記録/実行する機能のことです。 特定のアプリケーションにおける操作を自動化するモノであり、私たちが普段よく使うWindowsやGoogleのアプリの多くにはマクロ機能が備わっています。

マクロとアプリケーション

ここで注目したいのが、マクロがアプリケーションに備えられた機能である点です。アプリケーションとは特定の機能に特化したソフトウェアのことであり、私たちがよく知るExcelやWord、Googleドキュメント、Googleスプレッドシートなどもアプリケーションの一種です。

これらアプリケーションの操作は手作業で行うこともできますが、自動で実行するための機能も用意されています。(=直接キーボードやマウスから利用するのではなく、プログラムから操作することもできます。)このように特定のアプリを自動で実行するための機能を広い意味でのマクロと呼びます。

色々なマクロ

マクロと聞くとExcelやVBAをイメージしがちですが、マクロの機能を備えたのはExcelだけではありません。先ほどもお話したように、WordやPowerPoint、Googleドキュメント、スプレッドシートなどでもマクロの機能は使うことができます。他にも色々なアプリケーションにマクロの機能は備わっています。

https://ja.wikipedia.org/wiki/マクロ言語

マクロとExcel

とはいえマクロの機能が使われるのは多くの場合Excelにおいてです。Excelは世界中で使われているアプリケーションであり、その操作を自動で実行するニーズは非常に多くあります。Excelというアプリに備わった記録/実行機能が頻繁に使われることから、マクロ=Excel=VBAというイメージが定着するようになりました。

マクロと操作手順

次にマクロを構成する操作手順について考えてみます。マクロの正体とは命令文であり私たちが普段行なっている操作(マウスやキーボードへの入力)は結局のところコンピュータ(ここでいうExcelなどのアプリケーションソフト)に対する命令です。

このようなアプリケーションへの1つ1つの命令が1塊となってマクロを構成します。ある特定のアプリにおける複数の操作(1つ1つの命令)を一まとまりとして記録し、それを自動的に実行させるのがマクロの具体的な仕組です。 これによって普段私たちが手作業で行なっている仕事を自動的にコンピュータが肩代わりしてくれるようになります。

マクロの作り方

マクロを作るには大きく2つの方法があります。1つが操作をそのまま記録する方法、もう1つが操作手順のコードを記述する方法です。

1、操作をそのまま記録する方法

1つが操作をそのまま記録する方法です。例えばGoogleドキュメントにはマクロの機能があって、操作手順をそのまま記録することができます。

記録したマクロはもちろん後から自動的に実行ができます。作業をそのまま記録してくれるので直接的にイメージがつきやすいですが、記録や実行できる作業に限界があるのが難点です。

2、操作手順のプログラムを記述する方法

2つ目が操作手順のプログラムを記述する方法です。マクロを作るにはほとんどの場合、プログラミング言語によって自分でコードを記述します。例えばGoogleのアプリケーションにはGASという言語が用意されていますし、WindowsにはVBAがあります。これらの言語を使うことによって「記録」だけではできないような高度な作業をアプリケーションに行わせることができます。

ExcelとVBA

最後にカンタンにExcelとVBAという言葉の意味についてまとめます。

VBAとは?

Visual Basic for Applicationsの略で、Microsoft Officeシリーズ専用のプログラミング言語です。具体的にはExcelやWord、PowerPointなどの作業を自動で実行するためのプログラムを作ることができます。

マクロ言語

ここで注意したいのがVBAがWindowsのアプリケーションを操作するための言語である点です。 PythonやJava、Rubyなどのように色々な用途で使うことはできず、あくまでWindowsのアプリを操作するための言語です。このことから一般的なプログラミング言語と区別するために、マクロ言語と呼ばれることもあります。一般的な言語よりも用途が狭まっているデメリットはありますが、その分特定のアプリに特化した様々な機能が用意されています。

ここまで「マクロという全体の中でのVBAの立ち位置」について考えてきました。ある特定のアプリの操作を記録/実行するのがマクロであり、その中の1つのアプリがExcel(それを記述するための言語がVBA)である点を理解しておくと2つの言葉があごっちゃにならずに済むと思います。(実際にはそれほど厳密に区別しなくても問題はないかと思いますが..)

Discussion