このページの内容について
このページは、VBAエキスパート(ExcelVBAベーシック)試験合格講座の第一回記事です。公式テキスト第1章「マクロとVBAの概念」の内容について解説します。VBAエキスパート試験では全40問中最初の10問程度が用語やマクロの文法に関する選択問題です。この回で登場する用語や略語、機能の説明はすべて出題される可能性があるため、自分でも手を動かしながら読み進めてください。
ExcelVBA(マクロ)
VBA(Visual Basic for Applications)とは
これから学習をするExcelVBA(マクロ)とはMicrosoft社が提供するVBAというプログラミング言語のExcel版です。VBA(Visual Basic for Applications)はExcelだけではなく、AccessやWord、Outlookなど業務でおなじみのOfficeシリーズに組み込まれているプログラミング言語です。各アプリケーション専用VBAはそれぞれ共通の機能を持ちつつ、個々のアプリケーションを操作するために特化しています。その中でもExcelVBAはExcelの知名度・汎用性・利便性と相まってVBAの中で最も人気の高いプログラミング言語です。
マクロとは
「マクロ」という言葉には広義的な意味と狭義的な意味があります。狭義的な意味で用いる場合、VBAによって記述されたプログラムを「マクロ」と呼びます。広義的な意味では、Officeツールを自動化する機能全般を指して用いられます。
ExcelVBA(マクロ)でできること
一般的にマクロはExcelの操作を自動化するツールとして認識されていますが、他の高級なプログラミング言語(C言語やPython、Rubyなど)と同様にファイルやフォルダの操作、テキストデータ編集や、Webスクレイピングまで実現可能な機能が備えられており、単なるExcel専用の自動化ツールとしてだけではなく、一般の事務職が気軽に手を出せるプログラミング言語としても非常に優秀です。
補記:プログラミング言語とは
試験に直接問題として出題されることはありませんが「プログラミング言語」とは何かについて、特に初学者のみなさんは理解を深めておくとこの先の解説の理解がしやすくなります(きっと)。すでにほかのプログラミング言語を習得済の方はこの限りではありませんので、次の記事へ進んでください。
機械語
コンピュータは、Excelやメモ帳のデータを保存したり、SUM関数やCOUNT関数などの計算の実行したり、他にもインターネット検索からディスプレイへの出力まですべてを信号のON・OFFの組み合わせのみで表現しています。この信号の組み合わせを「0」と「1」の2進数で記述するのが「機械語」です。機械語はコンピュータが直接理解し、実行できる唯一の言語です。
一般に、人が数字を数えるとき、0~9までの10個の数字の組み合わせで「数」を表現します。この10種類の記号で数字を表現する方法を「10進数」と呼びます。例えば「16進数」は0~9、A~Fの16種類の記号を使用し、色コード(RGB)の表現などに使用されています。「2進数」とは0と1の2種類のみで数字を表現する方法で、これは信号のON・OFFを表現する方法として優れているため、機械語は「2進数」を使用して表現されます。
アセンブリ言語
機械語は人が直接記述したり、読んだりすることに適していません。例えば加算命令は「10110010」のような数値の並びで表現されますが、これをパッと見て加算命令と理解できる人は少ないです。また、CPUによって加算命令を表現する数値の並びは異なります。その置き換えを簡単にするために、機械語と1対1で人が理解しやすい、例えば「ADD」のような言葉に置き換えた言語を「アセンブリ言語」と呼びます。
コンパイル
機械語に比べて人が理解しやすい言語で書かれたプログラムをコンピュータで実行するためにはコンピュータ(CPU)ごとに合わせた機械語へ翻訳する作業が必要です。この作業を「コンパイル」と呼びます。このコンパイルの仕組みがプログラミング言語の根幹であり、コンパイルのルールを学ぶことがプログラミング言語を学習するということです。
プログラミング言語の進化とVBA
機械語と1対1の関係だったアセンブリ言語が登場したのが1940年以前でした。現在、プログラミング言語は進化を遂げ、一つの命令文に対応する機械語は非常に複雑になりました。そのため多くの派生言語や目的別の言語が生まれ、非常に多くの種類があります。VBAはその中で、MicrosoftのOfficeシリーズの付属のプログラミング言語として登場し、Office操作に特化した専用の言語として代替の利かない機能を多く提供しています。
Comment