Excelの関数とマクロとVBAの違い ~マクロの正体はVBA~|データ分析用語を解説

AUTHOR :   ギックス

本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)

マクロは処理手順の記録・実行、VBAはマクロを実現するプログラミング言語

Excelには、表計算だけでなく、マクロやVBAなどによって複雑な処理が行うことが可能です。そのため、Excelの機能だけで処理が完結するため、専門の技術者だけでなく、Excelを普段使いしている人にでもちょっとした処理(システム)なら作ることができます。今回はそんなExcelの関数、マクロ、VBAの違いについて説明したいと思います。

Excelの関数について

ご存知の通りExcelは、表計算ソフトです。そのため、様々な表計算をするためのExcel関数が用意されています。この関数は、Excelのバージョンアップと共に増え、通常の表計算だけでなく、統計関数などもあります。
Excel関数は、関数であるため複数行の命令を記載することは出来ません。IF関数などの条件式を使えば、セルの値によって使用する関数を変えるなどのような事は可能ですが、複雑な処理はExcel関数だけでは難しいです。また、セルの幅、罫線の変更、カーソル位置の変更など、表計算以外の表示変更などの処理は行えない処理が多いです。excel1

Excelのマクロについて

「マクロを作るためには、プログラムを記載する必要がある」と思っている方は多いと思います。しかし、マクロは、プログラムを記載しなくとも作ることができます。これは、「マクロ」という言葉からも分かります。

マクロとは、関連する複数の操作や手順、命令などを一つにまとめ、必要に応じて呼び出すことができるようにする機能のこと。
アプリケーションソフトでは、利用者が複数の操作手順を一連の手続きとして一つにまとめ、自動的に実行できるようにする拡張機能をマクロという。文書内の複数の個所や複数の文書に同じ操作を行わなければならない場合などに、一連の操作をマクロとして登録しておけば、マクロを呼び出すだけで記録した操作を自動的に実行してくれる。
引用:IT用語辞典

では、実際にExcelのマクロの登録(記録)と実行方法について説明します。
まず、初めに「マクロを記録」できるようにExcelに「開発」リボンを表示する必要があります。「開発」リボンを表示するためには、ファイルメニューから「オプション」をクリックして、下記の「Excelのオプション」画面を開きます。そして、「リボンのユーザー設定」の「開発」にチェックを入れます。excel3
表示された「開発」リボンの「マクロの記録」をクリックすることでExcelの操作を記録し、「記録終了」をクリックすることでExcelの操作の記録を終了します。ここで記録されるExcelの操作とは、セルの文字入力、セルのカーソル移動、文字列検索、文字列置換、セルの背景色変更など様々です。最後に記録したマクロを実行するためには、「マクロ」をクリックします。excel4

ExcelのVBAについて

Excelの「マクロの記録」を使用して、文字列検索などの記録することで、ある程度複雑な処理を作ることができます。更に複雑な処理を行おうとした場合、VBA(Visual Basic for Applications)というプログラミング言語が必要になります。
実は、既に「マクロの記録」によってVBAが自動生成されています。つまり、マクロを実行しているプログラミング言語はVBAなのです。Excelに記録されたVBAを表示するためには、「開発」リボンの「Visual Basic」をクリックすることで表示することができます。excel5
VBAは、比較的習得しやすいプログラミング言語ですが、非常に高度なシステムを作ることができる言語です。Excelの複雑な処理はもちろん可能ですが、外部のExcelファイル、テキストファイルのファイル読書き、DBへの接続、WindowsのOS操作まで可能です。そのため、VBAの高度なスキルを持っている開発者にとっては、非常に強力な武器になります。しかし、逆に悪用された場合、Excelのマクロ(VBA)にウィルスを忍ばせることも可能になるため、作成者不明のExcelのマクロには注意が必要です。
データ分析用語:索引

SERVICE