活用範囲の広いマクロ作成ツールであるVBAを使いこなして就活も有利にしよう学生向けのVBA入門方法!VBAの特徴や基本的な構文を紹介

最終更新日:2021年6月21日

VBAは初心者でも容易に習得することができるプログラミング言語であり、エンジニアはもちろん、非エンジニアでも利用することができます。VBAは業務効率化に有効な言語であり、VBAを習得することで現場において有用な人材であることを周囲にアピールすることができます。
この記事では、IT業界への就職を目指している学生の方向けに、VBAの概要やその特徴、学習するメリットや基本的な利用方法を解説します。また、最後にVBAを学習するための方法についてもご紹介します。

1. VBAとは?

まず、VBAの概要について紹介します。

VBAの概要

VBAとは「Visual basic for applications」の略称であり、主にMicrosoftのOfficeシリーズに搭載されているプログラミング言語のことです。「basic」という名称の通り、他のプログラミング言語と比較して理解しやすく、学びやすいという特徴があり、エンジニアはもちろんのこと、非エンジニアの方も多く利用している言語です。Officeのパッケージ内にてデフォルトで提供されており、ExcelやWordといったOfficeツールを導入しさえすれば利用できることもVBAが普及している理由の一つです。

VBAでは、VBE(Visual Basic Editor)という開発エディターによりプログラミングを行います。VBEはExcelやWordから簡単に利用することができます。

マクロとは

VBAと並んで利用される言葉に、マクロというものがあります。マクロとは、Officeツール内で利用できる自動化機能のことを指します。

VBAとマクロは混同しやすいですが、両者はVBAを用いてマクロを作成するという関係にあります。マクロはVBAを用いる方法以外にも、操作内容を自動記録することによるプログラミングレスでの作成や、C#等の他のプログラミング言語でも作成することができます。よって、VBAはマクロを作成するための一つの手法という整理となります。

2. VBAでできること

以下では、VBAでできることについて解説します。

定型処理の自動化

VBAを用いてマクロを作成することで、定型的な処理を自動化することができます。マクロを用いることで、例えばExcel上での集計処理や、Word形式で受け付けた申込書のリスト化などを行うことができます。定型処理を自動化することで、仕事における作業効率を大幅に改善することができます。特に何回も繰り返すような処理であれば、その効果は絶大なものとなります。

手作業で実施する作業のほとんどはVBAにより自動化することができるため、繰り返し行うような処理の多くはマクロ化を検討することができます。

Officeソフトの自動処理

VBAはOfficeシリーズと相性がよく、ExcelやWord以外にも様々なOfficeツールでの処理を自動化できます。例えば、Outlookを用いたメール送受信やTeamsへの自動投稿なども行えます。具体的には、特定の内容のメールに対して返信を自動で行ったり、会議予定をTeamsでリマインド通知したりするなど、業務の効率化に活用できます。

近年ではコロナ禍の影響もあり、テレワークが浸透しOutlookやTeamsといった遠隔でコミュニケーションが取れるツールの利用が増えています。これらのツールでの作業を自動化することで、テレワーク環境においてもコミュニケーションコストを低減させることができます。

3. VBAを学習するメリットと活かせる職種

学習のメリット

上述の通り、VBAは業務効率化に役立つプログラミング言語であり、習得することで実務においてメリットがあります。特に、近年ではDX(デジタルトランスフォーメーション)に注目が集まっており、各企業はDXへの取り組みを進めています。DXの一環として、業務の自動化による業務効率化が行われており、VBAをはじめとした自動化ツールの活用が進んでいます。VBAを習得することで、DXの実行に向けた有力な戦力とみなされるようになるでしょう。

活かせる職種

VBAはエンジニア志望の方はもちろん、非エンジニアとして就職する場合でも業務に役立つ言語です。たとえエンジニア就職を目指さないとしても、VBAを学習することでITに詳しい有用な人材であるとみられるようになるでしょう。VBAは幅広い職種で働くうえで活用することができるため、どなたでも学習して損はない言語といえます。
また、開発現場によってはVBAを用いてシステム開発を行うこともあります。VBAを用いたシステム開発の例としては、中心となるシステムの周辺システムとしてVBAを用いてツールを作成するケースなどが挙げられます。VBAの知識を備えておくことで、エンジニアとして就職を目指す際にも活躍の幅が広がります。

4. VBAの環境準備

ここでは、Excel上でVBAを利用するための準備方法について解説します。
まず、Excelを起動しオプション設定より「開発」タブを表示します。Excelのオプション設定は「ファイル」タブを選択し、左メニューにあるオプションを選択することで表示できます。オプション設定を表示したら、「リボンのユーザ設定」メニューを選択し、右欄より「開発」のチェックボックスにチェックを入れることで開発タブを表示できます。

開発タブを表示できたら、続いてVisual Basic Editorを起動します。Excelのリボンメニューから開発タブを選択し、「Visual Basic」のメニューをクリックします。これで、Visual Basic Editorを起動することができます。

Visual Basic Editorを起動したら、サンプルコードを入力して実行確認を行います。Excelの開発タブより、「マクロ」のメニューを選択します。マクロ名に「test」と入力して作成ボタンを押すことで、testマクロを作成できます。Visual Basic Editorが表示されますので、画面に以下のプログラムを入力し、メニューより実行します。
 

Sub test()
MsgBox ("Hello World!!")
End Sub


画面にメッセージボックスが表示されたら、プログラムの実行は成功です。

 

5. VBAの基本的な使い方

以下では、VBAの基本的な使い方について解説します。

メッセージボックスの表示

VBAでは、MsgBox関数により画面上にメッセージボックスを表示することができます。
 

Sub test()
MsgBox ("ここに表示したい文章を入力します")
End Sub

変数の利用

VBAでは、Dimを用いて変数を宣言することができます。変数とは、プログラム中で一時的に情報を格納しておける箱のことです。

 

Sub test()
Dim number
number = 100
MsgBox (number) '100と表示されます
End Sub


VBAでは、必要に応じて変数のデータ型を指定することができます。例えば整数情報を格納したい場合はInteger型を、文字列を格納したい場合はString型を指定します。VBAでは、変数宣言の後にAsを用いて変数の型を指定することができます。

 

Sub test()
Dim number As Integer
number = 100
MsgBox (number) '100と表示されます
Dim text As String
text = “sample”
MsgBox (text) 'sampleと表示されます
End Sub

配列の利用

VBAでは、サイズを指定して変数を宣言することで配列として利用できます。配列とは、複数の変数を一つの連続する変数として保持できるものです。配列を利用することで、同一目的で利用する複数の変数をまとめて管理できるため、利便性が向上します。
 

Sub test()
Dim numbers(3) As Integer
numbers(0) = 100
numbers(1) = 200
numbers(2) = 300
numbers(3) = 400
MsgBox (numbers(1)) '200と表示されます
MsgBox (numbers(3)) '400と表示されます
End Sub

シートとセルの指定とデータ入力

VBAでは、Excel上のセルをRangeプロパティもしくはCellsプロパティを用いて指定し、データの取得と入力を行うことができます。セルの操作はVBAを用いてExcelマクロを作成する場合に必須となるテクニックです。以下では、エクセルシート上のA1セルを対象に文字を読み取り、A2セルにコピーする例を示します。
 

Sub test()
Dim text As String
' Rangeプロパティを用いる方法
text = Range("A1").Value ' A1セルの情報を取得
Range("A2").Value = text ' A2セルに情報をコピー
' Cellsプロパティを用いる方法
text = Cells(1, 1).Value ' A1セルの情報を取得
Cells(2, 1).Value = text ' A2セルに情報をコピー
End Sub

条件分岐

VBAでは、If~Then~Elseステートメントを用いて条件分岐を行うことができます。条件分岐とは、指定した条件に合わせて処理を切り替えることです。以下では、年齢応じて表示する文字列を変更するプログラムの例を示します。
 

Sub test()
Dim years_old As Integer
years_old = 30
If years_old < 20 Then
MsgBox ("子どもです")
Else
MsgBox ("大人です")
End If
End Sub

繰り返し処理

VBAでは、For~Nextステートメントを用いて繰り返し処理を行うことができます。VBAでは、Forステートメントの後にToステートメントで繰り返しの回数を指定します。以下の例では、年齢の数だけ豆を食べるプログラムを示します。
 

Sub test()
Dim years_old As Integer
years_old = 30
MsgBox ("歳の数だけ豆を食べます")
For i = 1 To years_old
MsgBox (i & "個目")
Next
End Sub

プロシージャの作成

VBAでは、Subを用いてプロシージャを作成し、処理をひとまとめにすることができます。繰り返し利用するようなプログラムであれば、プロシージャを用いて処理をまとめることで再利用性が高まります。プロシージャの処理内容は、Sub xxx()からEnd Subまでの間に記述します。
 

Sub test()
setsubun ' 節分プロシージャの実行
End Sub

' 節分プロシージャ
Sub setsubun()
Dim years_old As Integer
years_old = 30
MsgBox ("歳の数だけ豆を食べます")
For i = 1 To years_old
MsgBox (i & "個目")
Next
End Sub


プロシージャに返り値を持たせる場合は、Subの代わりにFunctionを用います。返り値とはプロシージャの処理結果に応じて設定される値で、呼び出し元に返却されるものです。以下の例では、大人かどうかをプロシージャで判定の上、その判定結果を返り値として呼び出し元に返却しています。

 

Sub test()

Dim message As String
Dim years_old As Integer
years_old = 30
message = otona_check(years_old)
MsgBox (message)
End Sub

' 大人判定プロシージャ
Function otona_check(years_old) As String
If years_old < 20 Then
otona_check = "子どもです"
Else
otona_check = "大人です"
End If
End Function

 

6. 初学者におすすめの学習方法

最後に、はじめてVBAを学習する際におすすめの方法について紹介します。

書籍で学ぶ

VBAは人気の高い言語であり、多数の入門書が販売されています。VBAは比較的学習しやすい言語ではありますが、プログラミング経験がない場合などはそもそもプログラミングの考え方などが理解できず、苦労する場合もあります。どうしても書籍での独学は挫折しやすいため、後述するスクールの活用もおすすめです。

資格の取得を目指す

VBAには、関連資格としてVBAエキスパートという資格が存在します。資格の取得を目標にして学習することもおすすめです。VBAエキスパートにはExcel VBAベーシック、Excel VBAスタンダート、Access VBAベーシック、Access VBAスタンダートの4種類がありますが、特に初学者であれば取り組みやすいExcel VBAベーシックから取得を目指すことをおすすめします。

プログラミングスクールを活用する

独学での学習はハードルが高いため、プログラミングスクールを利用することもおすすめです。VBAを学ぶことができるスクールは豊富に存在しますが、どうしてもスクールに通うためには費用がかかるため、評判や実績を確認するなど、慎重にスクールを選ぶべきでしょう。

7. まとめ

VBAは、ビジネスの現場で多く利用されるOfficeツールを用いた業務を効率化するために有効なツールです。学習することで、就職活動の際のアピールポイントの一つになります。書籍やWebサイトを使って学習を始めてみることをおすすめします。

ITエンジニアを目指す新卒学生向け就活エージェントならレバテックルーキー

レバテックルーキーは、レバテックが運営するITエンジニア専門の就活エージェントです。多数のITエンジニアのキャリア支援経験のあるアドバイザーが、あなたのスキルと希望に合わせた企業の紹介から、人事目線での面接対策など、就職までを一貫してサポートします。ES添削、面接対策、ポートフォリオ作成サポートなども実施していますので、まずは一度カウンセリングにお越しください。

就活アドバイザーに相談してみる