VBAとは?マクロとの違いや言語の基礎を初心者向けにわかりやすく解説

VBAでどんなことができるのだろうか……
マクロとかも聞くけど、どう違うのだろうか?

国内におけるIT人材不足の深刻化を背景に、ITエンジニアといったプログラミングスキルがある人材の需要は増し、他の職種に比べ高い報酬を設けるケースが増えてきました。

そんななか、業務や作業の自動化・効率化に活用できるプログラミング言語「VBA」に関心を抱いている人も多いですよね。

ただ、「VBA」や一緒に出てくる「マクロ」などがどういう意味なのか、あいまいな人もいるはず。

そこで、この記事ではVBAとはどんなプログラミング言語なのか、その特徴をマクロとの違いやできることも交え、わかりやすく解説します。ステップ形式でVBAの基本的な使い方も紹介するので、ぜひ参考にしてください。

この記事の要約
  • VBAとはWordやExcelの操作をプログラムで行うための言語
  • マクロはWordやExcelで行った一連の操作を記録したもの
  • VBAの独学には学習サイトと書籍を併用した勉強が効率的

なお、どのプログラミング言語を学べばいいのか、どう学習を進めればいいのかなどがあいまいな人は「プログラミング学習プラン診断」をお試しください。

かかる時間は1分ほど。4つの質問に答えるだけで、あなたにあう言語や学習プランを診断してもらえます。

これからプログラミングを学ぼうとしている人は、ぜひ一度お試しください。

\ 4つの質問に答えるだけ /

本記事の解説内容に関する補足事項

本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」、を運営する株式会社SAMURAIが制作しています。

また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。

記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。

目次

VBAとは

VBAとは「Visual Basic for Applocations」の略で、WordExcelなどといったMicrosoft officeアプリの拡張機能です。また、上記のプログラムを記述する際に使用される、専用のプログラミング言語を指します。VBAという言葉は、よくプログラミング言語を指す場合に用いられます。

officeアプリ内でしか使用することはできませんが、VBAを用いてプログラムを作成することにより、さまざまな処理の自動化が可能です。

VBAの呼称は、各Microsoft officeアプリで異なります。

  • Excel VBA:Microsoft Excelで使用されるVBAを指す
  • Word VBA:Microsoft Wordで使用されるVBAを指す
  • Access VBA:Microsoft Accessで使用されるVBAを指す
  • PowerPoint VBA:Microsoft PowerPointで使用されるVBAを指す

officeユーザーであれば、VBAを活用することで繰り返し作業や定型作業などを自動化でき、業務効率化を目指せるでしょう。

マクロとは?

マクロとは、アプリ内であらかじめ操作手順を記憶させておくことで、任意のタイミングで一連の操作を実行できる機能のことです。プログラミング言語を用いて操作内容を記述しており、ボタンひとつでいつでも記述した動作を実行できるため、Excelでよく利用されています。

Excelには「マクロの記録」という機能も搭載されており、実際に操作した内容をExcelに記録できます。この機能を活用すれば、難しいプログラミングを行わなくても簡単にExcel作業の自動化が可能です。

他にも、VBAを駆使すれば関数やテーブル、条件付き書式などの機能も動かして、複雑な処理も自動で行えます。WordやPowerPointとの連携も可能なため、VBAを活用してさまざまな業務の自動化が目指せるでしょう。

マクロとの違い

マクロはアプリ内で記憶した操作を繰り返し行える機能であり、VBAは操作内容を記述するためのプログラミング言語です。

内容を記述するためのプログラミング言語です。

マクロとの違い
マクロとの違い

VBAはMicrosoft office専用のプログラミング言語だと覚えておくのがおすすめです。

「VBAを用いてコードを手書きして、マクロを作成する」VBAとマクロとの違いは、このように覚えておくと理解しやすいでしょう。

なお、次の記事ではVBAとの違いも交えマクロの使い方を詳しく解説しているので、良ければ参考にしてください。

【VBA入門】マクロの使い方(VBAとマクロの違いも解説)

VBAの特徴4つ

VBAの特徴4つ

ここからは、VBAの特徴を4つ紹介します。

マクロの作成・制御に用いられる

マクロは、Microsoft Office アプリでの一連の操作を自動化するための手段です。これらの操作は、ユーザーが行った動作を記録し、それを再生することで自動化されます。マクロは、繰り返し行われる作業を省略するために便利ですが、基本的にはシンプルなタスク向けです。

Microsoft製品であればソフトを横断した連携が可能となり、Excelに入力したデータをWordに反映させることもできます。日常業務でofficeアプリをよく扱っている企業であれば、さまざまなメリットを享受できるでしょう。

初心者からでも習得しやすい

VBAは初心者でも学習しやすく、特にExcelを業務でよく活用しているのであれば、すぐ実践で扱える点でおすすめです。初心者でも習得しやすい理由を、VBAとPythonのコードを比較しながら解説します。

例えば、ExcelのA1セルに「侍エンジニア」と入力する場合、VBAで記述するコードは次のとおりです。

VBAのサンプルコード:
Sub Sample1()
    
    Worksheets("Sheet1").Range("A1").Value = "侍エンジニア"

End Sub

「Sub マクロ名 ~ End Sub」で囲まれた範囲が、1つのマクロ(処理)です。上に書いたコードをわかりやすく日本語に訳すと、次のようになります。

コード:
Worksheets("Sheet1").Range("A1").Value = "侍エンジニア"
日本語訳:
シート名(Sheet1)のAIセルに「侍エンジニア」と入力

Excelのシート(Worksheets)名を指定した後、セルの範囲(Range)を指定して、最後にセルに入力する値(Value)を指示しています。Excel専用のプログラミング言語であるため、ほかに記述する必要がなくシンプルな文章のみで実行可能です。

次に、Pythonで記述するコードは次のとおりです。

Pythonのサンプルコード:
import openpyxl

# ブックを取得
book = openpyxl.Workbook(‘C:\\test\\test.xlsx’)
# シートを取得
sheet =book[‘Sheet1’]
# セルへ書き込む
sheet[‘A1’] = ‘侍エンジニア’

Pythonで同じマクロを作成する場合、はじめにPythonを利用してExcelを操作するためのライブラリを読み込ませる必要があります。ライブラリとは、プログラムに事前に読んでおいてもらう説明書のセットのようなものです。その後、操作対象となるExcelファイルの選択から始めないといけません。

Excelアプリの内部で操作ができるVBAとは違い、Pythonで行う場合は手順が多いです。そのため、短いコードのみで完結するVBAのほうがおすすめだと言えます。

効率よく開発が進められる

VBAを活用すれば、効率よく開発が進められます。

少し難しい内容ですが、VBAはオブジェクト指向のプログラミング言語です。オブジェクト指向とは、作成したプログラムをひとつのオブジェクト(モノ)として考える方法です。作成したプログラムをそれぞれ1つのオブジェクトとして保存し、それらを再利用したり修正をしやすくできます。

例えば、RPGのキャラクターを作成する際、「キャラクターの職業」と「ステータス」という定義を作成します。作成した定義をひとつのオブジェクトとして保存しておけば、あとは「キャラクターの職業」と「ステータス」を組み合わせるだけで、いくつかの違うキャラクターを作成可能です。新しい職業を加えたい場合、「キャラクターの職業」が定義されているオブジェクトを修正するのみで済みます。

このように、VBAはオブジェクト指向のプログラミング言語であるため、初心者でもわかりやすく効率よく開発が進められるでしょう。

次の記事では、オブジェクト指向の基礎知識やを使用の際のメリットを紹介していますので、あわせてご覧ください。

オブジェクト指向とは?意味や言語の種類、基礎知識もわかりやすく解説

Microsoft Officeアプリ以外では使用できない

VBAはMicrosoft officeアプリ専用のプログラミング言語であるため、それ以外の用途で使用できません。

そのため、Googleドキュメントやスプレッドシートなどの外部アプリケーションとの連携を行いたい場合、PythonやJavaなど他の言語を使用する必要があります。

他にも、VBAを利用してアプリケーション自体を開発するのも困難です。厳密に言えば開発は可能ですが、多くの労力を伴うこととなるでしょう。

VBAでできること

VBAでできること

VBAを活用すれば、一連の操作をボタンひとつでまとめて実行できるマクロが作成可能です。

例えば、社内の営業成績をエクセルで管理しており、毎月の成績を上司にまとめて報告している仕事をしているとしましょう。報告の時は、営業成績順に並べ替えてデータを提出する決まりになっているとします。

VBAの処理の流れ
VBAの処理の流れ

このようなルーチン化している作業をVBAを活用してマクロにすれば、毎月手作業で行う必要がなくなります。

ここからは、VBAでどのようなことができるのか、主な活用法を4つにまとめて紹介します。

繰り返し作業の自動化

VBAを活用すれば、日常業務において繰り返し行われる作業の自動化が可能です。

例えば、顧客に対して請求書を送付する作業を毎月行うと仮定します。顧客情報一覧と売上が記載されているExcelファイルが別々にある場合、各帳票を手作業で作成するのは時間がかかります。

そこでVBAを活用すれば、自動的に各顧客の売上に対応した帳票をひとつずつ作成、出力が可能です。

手作業でコピーアンドペーストを繰り返して作成する必要がないため、作業時間を短縮可能でミスも起きず、業務効率化に繋がるでしょう。

計算・データ処理の効率化

VBAを活用すれば、計算やデータ処理を効率よく行えます。

特にVBAではユーザー定義関数(UDF)という機能があり、自分で関数を作成し、ワークシート関数のように使用が可能です。一度作成してしまえば何度も再利用でき、修正する際も一部分のみの修正で済みます。

自分の業務に合わせた独自の関数を作成することで、よりニーズに合った処理を実現でき、更なる業務効率化が図れます。

ただし、VBAは処理能力があまり高くありません。膨大なデータを扱う場合、時間がかかってしまうか最悪フリーズしてしまいます。扱うデータ量が多い場合は、他のプログラミング言語を視野に入れるなど、別の対策が必要です。

Officeアプリ間の連携

各OfficeアプリのVBAを駆使すれば、すべてのOfficeアプリを連携させ、一連の作業を自動化できます。

例えば、Accessのデータを元にExcelでグラフを作成し、Wordで配布用資料、PowerPointでスライド資料を作成する作業をボタンひとつで実行可能です。

VBAを用いた自動化は、月次で繰り返されるさまざまな作業を減らし、生産性を向上させられるでしょう。

メールの一括・自動送信

VBAを活用すれば、メールの一括・自動送信を簡単に行えます。

日報や月報、メルマガといった定期的に送信するフォーマットが決まっているメールであれば、VBAを活用して自動でメール作成から送信まで実行可能です。

毎日、毎月繰り返される作業を自動化できれば、生産性は大幅に向上するでしょう。

次の記事では、VBAでできることや身につけるメリットを紹介しているので、あわせて参考にしてください。

VBAでできることとは!? 業務改善する事例・必要な技術を徹底解説!

VBAのスキルを身に着ける3つのメリットとは?効率化事例も解説!

VBAの基本的な使い方

ここからは、実際にVBAを活用してマクロを作成する基本的な使い方を、6つのステップにまとめて解説します。

今回は、マクロを実行したらA1セルに文字列「侍エンジニアでプログラミングを学ぼう」が入力されるプログラムを作成します。

なお、次の記事ではVBAを始める際の事前準備から作り方、実行方法などを詳しく紹介していますので、あわせてご覧ください。

VBAを始める手順とは?事前準備・作り方・実行方法などまとめて解説!

STEP1:開発タブを有効化する

VBAを活用してマクロを作成するには、まず開発タブを有効にする必要があります。画面左上の「ファイル」を選択後、左下にある「オプション」を選択しましょう。

開発タブを有効化する

ExcelのオプションウィンドウがPOPしたら「リボンのユーザー設定」を選択、画面右側に表示されている「メイン タブ」内の「開発」にチェックを入れて「OK」を選択します。

開発タブを有効化する

メインタブへ「開発」タブが追加されるのを確認しましょう。

開発タブを有効化する

STEP2:VBAエディタを起動する

次に、VBAを記述するためのVBAエディタを起動させます。

「開発」タブを選択し「Visual Basic」を選択してください。

VBAエディタを起動する

STEP3: 新しいモジュールを挿入する

エディタを起動したら、マクロの作成を始めていきます。

まずは、画面左側にあるプロジェクトエクスプローラーを右クリックして、「挿入」→「標準モジュール」の順番で選択してください。

新しいモジュールを挿入する

STEP4:モジュールにVBAコードを記述する

新しいモジュールを作成したら、画面中央のコード部分にVBAコードを記述します。今回記述する内容は、実行したらA1セルに文字列「侍エンジニアでプログラミングを学ぼう」が入力されるマクロです。

モジュールにVBAコードを記述する

STEP5:記述したマクロを実行する

VBAコードの記述が完了したら、実際にマクロを実行して動作確認を行います。

ツールバーにある「実行」ボタンを選択してください。

記述したマクロを実行する

Excelに戻り確認します。A1セルに「侍エンジニアでプログラミングを学ぼう」が入力されていれば成功です。

STEP6:マクロを保存する

マクロが正常に動いたのを確認できたら、作成したマクロを保存します。

ツールバーにある「保存」ボタンを選択してください。

マクロを保存する

VBAでマクロを作成する基本的な流れは以上です。

なお、次の記事ではVBAの基本的な書き方やおすすめの学習方法を紹介していますので、あわせてご覧ください。

ExcelVBAの基礎知識・書き方・おすすめの学習方法を解説

VBAにまつわるFAQ

最後に、VBAにまつわる質問へまとめて回答します。

VBAを学ぶにはどうしたらいいの?

VBAを効率よく学ぶには、VBAの基本的な知識は学びつつ、簡単な動作からで良いのでマクロ作成の回数を増やしていくことが大切です。独学で習得を目指す場合、まずは学習サイトと書籍を併用した勉強が効率的です。

実際に仕事をしているなかで、VBAを活用して自動化したい作業があるでしょう。実際の業務で利用できるマクロ作成を目標とすれば、「アウトプット=1つの作業自動化」が可能です。

業務効率化が達成できるだけでなくモチベーション向上にも繋がり、一石二鳥となります。

次の記事では、VBAの基本的な書き方やおすすめの学習方法を紹介していますので、あわせてご覧ください。

VBA初心者必見!おすすめの勉強方法4つと学習のコツを詳しく解説

VBAの習得は就業活動に役立つ?

VBAの習得は、通常業務でOfficeアプリを利用している企業への就業活動で役立ちます。働き方改革やIT人材不足を背景に、多くの企業では生産性向上を実現するため、業務効率化が推進されています。

そのため、VBAを習得している人材は、就業活動においても役立つスキルだと言えます。

なぜVBAは「やめとけ」といわれているの?

VBAは基本的にOfficeアプリのみを動作させられるプログラミング言語です。そのため、社内でOfficeアプリから他社製品に乗り換えたり、転職した先では利用していなかったりした場合、VBAを活用できる機会が失われてしまうからです。

他にも、限定的な使用しかできないプログラミング言語のためか、他の言語と比較して下に見られてしまう場合もあります。

しかし、Officeアプリは日本の多くの企業で主流のツールとなっているため、習得しておいて損はありません

挫折なくVBAの習得を目指すなら

ここまで記事を読み、自力でVBAの習得を目指そうとしている人のなかには、

独学で習得できるか不安…
途中で挫折したらどうしよう…

と不安な人もいますよね。

いざ独学でVBAの習得を目指し始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「思っていたよりも難しいんだな…」とスキルの習得自体を諦めかねません。

仮にわからないことを飛ばしながら勉強を進めたとしても、エンジニアへの就職・転職を実現できる実践的なスキルが身につかなければ、結局後悔することになります。

そこで、おすすめしたいのが「SAMURAI ENGINEER(侍エンジニア)」です。

300x300-samuraiengineer (1)
6
700x700_01 (1)
700x700_02
700x700_03
700x700_04
700x700_05
700x700_06
700x700_07
700x700_08
300x300-samuraiengineer (1)
6
700x700_01 (1)
700x700_02
700x700_03
700x700_04
700x700_05
700x700_06
700x700_07
700x700_08
previous arrow
next arrow
分割料金一括料金受講期間
4,098円~16万5,000円~1ヶ月~
  • 転職・副業・独立などの目的に特化したコースあり
  • 累計指導実績4万5,000名以上
  • 給付金活用で受講料が最大70%OFF

侍エンジニアをおすすめする最大の理由は「挫折しづらい学習環境」にあります。具体的に、侍エンジニアでは

  • 現役エンジニア講師によるマンツーマンレッスン
  • 現役エンジニアに質問できるオンラインでのQ&Aサービス
  • 不安や悩み・勉強の進み具合を相談できる学習コーチ

といったサポート体制を整えているため、学習中に出てきたわからないことや不明点をいつでも相談可能です。「受講生の学習完了率98%」という実績からも、侍エンジニアなら挫折しづらい環境で学習を進められるといえます。

また、侍エンジニアではカウンセリングにて受講生一人ひとりの目的をヒアリングしたうえでカリキュラムを作成するため、限られた受講期間でもセキュリティエンジニアへの就職・転職に必要なスキルだけを効率的に習得可能です。

最短距離で目的を実現できるようカリキュラムが組まれているため、勉強する順番や内容を誤り非効率に時間や手間を費やす心配もありません。

なお、侍エンジニアでは最大70%OFFで受講可能な「給付金コース」を提供中。金銭面での支援を受けつつ、理想のキャリア実現に向けたスキルの習得から、転職活動・就業後のフォローアップ(※1)までを一貫してサポートしてもらえます。

※1:転職後の1年間、転職先での継続的な就業や転職に伴う賃金上昇などのフォローアップ

学習と金銭面をどちらもサポートしてくれる侍エンジニアなら、未経験からでも安心してセキュリティエンジニアへの転職や副業での収入獲得などの目的が実現できますよ。

公式サイトで詳細を見る

まとめ

本記事では、VBAとマクロの違いやVBAの特徴、基本的な使い方を紹介しました。

働き方改革やIT人材不足を背景に、多くの企業では生産性向上を実現するため、業務効率化が推進されています。日本の多くの企業にてOffice製品は利用されているため、習得できれば社内での業務効率化に貢献できるでしょう。

通常業務と平行して習得するのは時間や根気が必要となります。独学では不安が残る人は、的確なサポートを受けられるプログラミングスクールを活用し、効率よく学習していくのもおすすめですよ。

なお、下記「マナビタイム」ではVBAでマクロを学ぶおすすめの勉強方法も紹介しているので、良ければあわせて参考にしてください。

初心者必見!VBAでマクロを学ぶおすすめ勉強方法を解説

この記事の監修者

フルスタックエンジニア

金田 茂樹


音楽大学卒業後、15年間中高一貫進学校の音楽教師として勤務。40才のときからIT、WEB系の企業に勤務。livedoor(スーパーバイザー)、楽天株式会社(ディレクター)、アスキーソリューションズ(PM)などを経験。50歳の時より、専門学校でWEB・デザイン系の学科長として勤務の傍ら、副業としてフリーランス活動を開始。 2016年、株式会社SAMURAIのインストラクターを始め、その後フリーランスコースを創設。現在までに100名以上の指導を行い、未経験から活躍できるエンジニアを輩出している。また、フリーランスのノウハウを伝えるセミナーにも多数、登壇している。

この記事を書いた人

【プロフィール】
システムエンジニアからフリーランスへ転向して3年目。Webライターを中心に、サイトや動画の制作・業務効率化を目的としたプログラム作成などの仕事を担う。2024年から侍エンジニアブログの記事執筆を担当。エンジニア時代の経験を活かし、初学者にも理解しやすい解説の執筆を心がけています。
【専門分野】
Web関連全般(HTML,CSS,JavaScript,Pythonなど)/インフラ関連(Java,DB,SQLなど)/中国語(バイリンガル)
【SNS】
X(旧:Twitter)

目次