非IT人材でもIT化に貢献できる「VBA」は「マクロ」と同義ではないVBAとマクロの違いとは?それぞれ何ができるのか

最終更新日:2021年9月15日

レバテックキャリアは
ITエンジニア・Webクリエイター専門の転職エージェントです

Microsoft社のオフィス製品に搭載されている「VBA」と「マクロ」は、どちらもルーチンワークの自動化や効率化に使われる機能です。一般的には「VBA=マクロ」と言われることもありますが、厳密に言えば2者は全く別の存在です。特にVBAは汎用性の高いスキルであるため、マクロとの違いや「何ができるのか」を理解し、実践につなげていきましょう。ここでは、VBAとマクロの違いや、それぞれができること・できないことを解説します。

1. VBAとマクロの違い

まず、VBAとマクロの違いについて解説します。

「VBA」と「マクロ」の概要

VBAの正式名称は「Visual basic for applications」で、Micorsoft社が開発したプログラミング言語「VB(Visual basic)」のオフィス製品版と言える存在です。WindowsOS内での使用を想定しており、VBE(Visual Basic Editer)という編集用アプリケーションを使用して記述を行います。

一方、マクロは「特定の操作を記録・再生(実行)する機能」の総称です。オフィス製品に限らず、アプリケーションやソフトウェアの操作を自動化する機能として広く使われています。WindowsOS内であれば、Word・パワーポイント・Outlookなどでもマクロを利用することができるでしょう。また、Adobe社のPhotoshop / Illustratorに搭載されている「アクション」機能もマクロのひとつと言えます。

VBAとマクロの違いとは?

VBAは主にオフィス製品を対象としたプログラミング言語であり、マクロは作業記録・自動化のための機能です。つまり、「プログラミング言語」と「コンピュータ上で動作する汎用的な機能」という違いがあります。例えばExcelの場合、マクロ記録を使えば手入力の作業を記録して保存し、任意のタイミングで再生することが可能です。ただし記録できる内容には制限があります。一方、VBAを使ったプログラミングでマクロを作成すれば、動作範囲や実行回数、実行条件などを細かく制御できるようになります。

2. VBAとマクロができること・できないこと

次に、VBAとマクロができること・できないことを紹介します。ここでは主にExcel上の操作を想定して解説していきます。

Excel VBAでできること、できないこと

VBAができることは非常に多く、小規模な業務システムであればVBAのみで実装することも可能です。また、経理・営業・総務といった非IT部門の人材がVBAを使いこなせると、事務作業の効率が大幅に向上します。

VBAができること

文字列操作と変換
Excel VBAでは、VBA内の関数によって文字列操作やデータ変換処理ができます。下記は、VBAに搭載されている文字列操作・データ変換処理用関数の一例です。
 

  • ・Int…指定した数値の整数部だけを返す

    ・Join…任意の文字列を区切り文字で結合して返す

    ・CSng…指定した値を数値型(Single)に変換

    ・CStr…指定した値を文字列型(String)に変換

    ・FormatCurrency…システムで定義されている通貨形式で文字列を返す


この他にも、指定した日時形式に文字列を変換する関数や、パーセント形式に変換する関数などもあります。

Web API連携
VBAから外部APIを呼び出すことで、外部システム(Webサイト・アプリなど)の処理をローカルのVBAプログラム内で実行することができます。例えばVBA内に「HTTP REQUEST」を記述してパラメータを設定し、Web APIが実装されている外部サイト・サービスに対して連携のリクエストを送信します。リクエストが認証されるとAPIを通じてデータ連携が行われ、外部サイトやサービスが提供する機能をローカルでも活用できるようになるわけです。

手作業の記録と編集、自動化
VBAではExcelに搭載されている「マクロ記録機能」で記録した手作業の内容を編集することもできます。マクロ記録で保存されたマクロをVBEで開き、VBAを使ったコーディングで処理内容を編集することで、繰り返して実行させたり、処理内容を高度化させたりとブラッシュアップすることが可能です。こうすることで、やや複雑な手作業でも比較的簡単に自動化を進めることができるわけです。

VBAができないこと(苦手なこと)

万能に見えるVBAも、以下のようなことはできないことがあります。

ワークシートの容量以上のデータ処理
ExceLであればVBA の効果が及ぶのは、ワークシートの最大容量(1,048,576 行×16,384 列)までです。ワークシートの最大容量を超えるようなビッグデータを操作する処理はできない、と考えて良いでしょう。

サポート外アプリケーション群との連携処理
VBAは、原則としてVBAの命令を受け取ることができる製品・機能でのみ動作します。VBAを使用してサポート外アプリケーションのGUIを操作し、オフィス製品と連携させることはできるものの、あまり効率的な仕組みとは言えません。もしオフィス製品を含む複数のアプリケーションを横断的に操作・連携させたいのであれば、RPAなどを活用すべきでしょう。

文字イメージ認識
VBAは画像認識ライブラリなどを持たないため、特定の文字列をイメージとして認識するような処理は苦手とします。ただしOCRと連携することで、取り込んだ画像から文字イメージを認識することか可能です。VBAで利用可能なOCRとしては、「Google Cloud Vision API」や「Google tesseract-ocr」などがおすすめです。

Excel マクロができること、できないこと

Excelのマクロ記録を使用する場合は、VBAに比べてできることの幅が狭くなります。

Excel マクロができること

相対参照と絶対参照による位置の記録
マクロ記録機能では、記録開始時にカーソルがある(選択されている)セルの場所を記憶し、そこを起点として手入力の作業を記録していきます。また、セルを移動すると移動したあとの位置情報が記録されます。このように「セルの位置を記録」しながら手入力を模倣できることがExcelマクロの特徴です。また、セルの位置を記録する方法としては「絶対参照」と「相対参照」があります。

絶対参照とはセルの位置を「絶対値」として捉える方法です。例えばA1からC3へとカーソルを移動させる処理を記録した場合は、どのセルを選択した状態でもA1セルとC3セルの間でマクロが動作します。

一方、相対参照はセルの場所を「相対的な位置(範囲)」として記録します。前述の例で言えばA1からC3への移動を「右に2つ、下に2つ動く」という情報として記録するわけです。相対参照で作成したマクロを実行すると、マクロ実行時に選択したセルから処理が始まり、右に2つ・下に2つカーソルを移動させながら動作します。

どのセル、シートでも使えるルーチンワークの記録
相対参照で作成したExcelマクロであれば、セルに依存せず動作します。セルやシートに関わらず「一定範囲内の書式を規定値に変更する」「選択したセル、シートの内容を一括で削除する」といったルーチンワークをクリック一つで実行できるようになるわけです。

特定の位置のみで動作する処理の記録
絶対参照を使用したマクロでは、特定のセルのみで動く処理を記録できます。また、シートやブックを移動せずにマクロ記憶を行うことで、特定のシート・ブックのみで動作するマクロを作ることができます。

Excel マクロができないこと

繰り返し処理の自動化
マクロ記録で作成したExcelマクロでは、2回以上の繰り返し処理を実装できません。もし繰り返し処理を行いたい場合は、VBAによる編集が必要です。

条件分岐
マクロ記録単体では、「特定の条件によって処理を分岐させる」こともできません。また、変数を活用して汎用性を高めることも不可能です。こうした処理は全てVBAによって追加することになります。

マウス操作の記録
Excelマクロで記録される位置情報は、あくまでも「セル」をベースとしています。したがって、「マウス自体が動いた距離」を記録することはできません。もし「マウスを下に15センチ、右に10センチ動かす」といった動作を記録したいのであれば、その距離に相当するセル位置を記録させるか、他のツールを使用することになるでしょう。

その他、VBAでできないこと
「VBA=マクロ」ではありませんが、保存したExcelマクロをエディターで開くと、実際の中身はVBAとして記録されています。したがって、VBAでできないことはマクロでもできないと考えてください。

ITエンジニア・Webクリエイターの転職ならレバテックキャリア

レバテックキャリアはIT・Web業界のエンジニア・クリエイターを専門とする転職エージェントです。最新の技術情報や業界動向に精通したキャリアアドバイザーが、年収・技術志向・今後のキャリアパス・ワークライフバランスなど、一人ひとりの希望に寄り添いながら転職活動をサポートします。一般公開されていない大手企業や優良企業の非公開求人も多数保有していますので、まずは一度カウンセリングにお越しください。

転職支援サービスに申し込む

また、「初めての転職で、何から始めていいかわからない」「まだ転職するかどうか迷っている」など、転職活動に何らかの不安を抱えている方には、無料の個別相談会も実施しています。キャリアアドバイザーが一対一で、これからのあなたのキャリアを一緒に考えます。お気軽にご相談ください。

「個別相談会」に申し込む

プロのアドバイザーがあなたのお悩みや疑問にお答えします

- 転職個別相談会開催中 -

相談内容を選択してください

※転職活動や求人への応募を強制することはありません

人気の求人特集

内定率が高い

関連する記事

人気の記事

スキルアップ記事トップへ

VBAの求人・転職一覧