\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
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はマクロを作成するための一つの手法という整理となります。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
VBAでできること
以下では、VBAでできることについて解説します。
定型処理の自動化
VBAを用いてマクロを作成することで、定型的な処理を自動化することができます。マクロを用いることで、例えばExcel上での集計処理や、Word形式で受け付けた申込書のリスト化などを行うことができます。定型処理を自動化することで、仕事における作業効率を大幅に改善することができます。特に何回も繰り返すような処理であれば、その効果は絶大なものとなります。
手作業で実施する作業のほとんどはVBAにより自動化することができるため、繰り返し行うような処理の多くはマクロ化を検討することができます。
Officeソフトの自動処理
VBAはOfficeシリーズと相性がよく、ExcelやWord以外にも様々なOfficeツールでの処理を自動化できます。例えば、Outlookを用いたメール送受信やTeamsへの自動投稿なども行えます。具体的には、特定の内容のメールに対して返信を自動で行ったり、会議予定をTeamsでリマインド通知したりするなど、業務の効率化に活用できます。
近年ではコロナ禍の影響もあり、テレワークが浸透しOutlookやTeamsといった遠隔でコミュニケーションが取れるツールの利用が増えています。これらのツールでの作業を自動化することで、テレワーク環境においてもコミュニケーションコストを低減させることができます。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
2.まずはVBAの環境を作ろう
VBAをこれから活用したい方は、まずVBAを作成するための環境を用意することができます。どこでVBAを入力すればいいのか、どうやってExcelやWordに反映すればいいのか解説していきますので、参考にしてみてください。
環境って何?
環境とは、VBAのようなプログラミング言語を入力するための仕組みのことを指します。VBAは複雑なコードになるので、Excelのセル上で関数のように入力しても動作しません。そのため、ExcelやWord側がVBAを理解できる画面で入力し、コードを適用させる必要があります。一般的なプログラミングの場合この環境構築に時間がかかりますが、VBAの場合は簡単に環境が用意されていますので、下で詳しく紹介します。
VBA環境の作成手順
ここでは、Excel上でVBAを利用するための準備方法について解説します。
まず、Excelを起動しオプション設定より「開発」タブを表示します。Excelのオプション設定は「ファイル」タブを選択し、左メニューにあるオプションを選択することで表示できます。オプション設定を表示したら、「リボンのユーザ設定」メニューを選択し、右欄より「開発」のチェックボックスにチェックを入れることで開発タブを表示できます。
開発タブを表示できたら、続いてVisual Basic Editorを起動します。Excelのリボンメニューから開発タブを選択し、「Visual Basic」のメニューをクリックします。これで、Visual Basic Editorを起動することができます。
Visual Basic Editorを起動したら、サンプルコードを入力して実行確認を行います。Excelの開発タブより、「マクロ」のメニューを選択します。マクロ名に「test」と入力して作成ボタンを押すことで、testマクロを作成できます。この画面上で実際にVBAの入力を行っていきます。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
3.簡単なVBAを書いてみよう
Visual Basic Editorが表示されたら、画面に以下のプログラムを入力し、メニューより実行してみましょう。
Sub test() MsgBox ("Hello World!!") End Sub |
これだけだと特に意味のないコードではありますが、VBAを使ってみる第一歩目としてはクリアです。ここから細かい構文や使い方を学んでいきつつ、VBAで業務効率化を進められるようになってみましょう。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
4.【超基礎】8つの構文をおさえてVBA入門卒業!
ここでは、基礎的なVBAの構文を解説します。ここで紹介する構文を使えるように慣れば入門編はクリアですので、ぜひ一度トライしてみてください。
なお、VBAを学習する際は実際に手を動かしながら挙動を確認してみることが大切です。細かなエラーや半角/全角のミスなど、読んでいるだけでは気づかない学びを得られますので、手を動かしながら自分の血肉にしてください。
①メッセージボックスの表示
MsgBox関数により画面上にメッセージボックスを表示することができます。構文は以下のとおりです。
Sub test() MsgBox ("ここに表示したい文章を入力します") End Sub |
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
②変数の利用
VBAでは、Dimを用いて変数を宣言することができます。変数とは、プログラム中で一時的に情報を格納しておける箱のことです。
Sub test() Dim number number = 100 MsgBox (number) '100と表示されます End Sub |
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() |
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
④シートとセルの指定とデータ入力
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ステートメントを用いて条件分岐を行うことができます。条件分岐とは、指定した条件に合わせて処理を切り替えることです。以下では、年齢応じて表示する文字列を変更するプログラムの例を示します。
Dim years_old As Integer years_old = 30 If years_old < 20 Then MsgBox ("子どもです") Else MsgBox ("大人です") End If End Sub |
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
⑥繰り返し処理
VBAでは、For~Nextステートメントを用いて繰り返し処理を行うことができます。VBAでは、Forステートメントの後にToステートメントで繰り返しの回数を指定します。以下の例では、1歳から30歳までの間で、年齢の数だけ豆を食べる際の豆の数を出力するプログラムを示します。
Sub test() Dim years_old As Integer years_old = 30 MsgBox ("歳の数だけ豆を食べます") For i = 1 To years_old MsgBox (i & "個目") Next End Sub |
また、上でも説明したとおり、このFor〜Next構文は配列と組み合わせることでより効率よく値を入力していくことができます。
Sub test() Dim arr() As String arr = Split("A;B;C", ";") Dim i As Long For i = LBound(arr) To UBound(arr) MsgBox arr(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 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 |
プログラミングをしたことのある方なら、このプロシージャは自分で定義できる関数のことを指しますので、同じようなものだと思っておくと良いでしょう。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
⑧ダイアログボックスの応用
①で紹介したダイアログボックスの応用編です。ダイアログボックス上で「はい」「いいえ」を入力してもらい、その入力結果に合わせて条件処理で指定の文字列を出す、という処理をここでは学習します。
Sub test() Dim res As Integer res = MsgBox("これでOKですか?", vbOKCancel) If ans = vbOK Then 'OKボタンがクリックされたときの処理 Else 'キャンセルボタンがクリックされたときの処理 End If End Sub |
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
5.次に進む方におすすめの学習方法
最後に、はじめてVBAを学習する際におすすめの方法について紹介します。
書籍で学ぶ
VBAは人気の高い言語であり、多数の入門書が販売されています。VBAは比較的学習しやすい言語ではありますが、プログラミング経験がない場合などはそもそもプログラミングの考え方などが理解できず、苦労する場合もあります。どうしても書籍での独学は挫折しやすいため、後述するスクールの活用もおすすめです。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
資格の取得を目指す
VBAには、関連資格としてVBAエキスパートという資格が存在します。資格の取得を目標にして学習することもおすすめです。VBAエキスパートにはExcel VBAベーシック、Excel VBAスタンダート、Access VBAベーシック、Access VBAスタンダートの4種類がありますが、特に初学者であれば取り組みやすいExcel VBAベーシックから取得を目指すことをおすすめします。
プログラミングスクールを活用する
独学での学習はハードルが高いため、プログラミングスクールを利用することもおすすめです。VBAを学ぶことができるスクールは豊富に存在しますが、どうしてもスクールに通うためには費用がかかるため、評判や実績を確認するなど、慎重にスクールを選ぶべきでしょう。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
6.VBAを学習するメリットと活かせる職種
学習のメリット
上述の通り、VBAは業務効率化に役立つプログラミング言語であり、習得することで実務においてメリットがあります。特に、近年ではDX(デジタルトランスフォーメーション)に注目が集まっており、各企業はDXへの取り組みを進めています。DXの一環として、業務の自動化による業務効率化が行われており、VBAをはじめとした自動化ツールの活用が進んでいます。VBAを習得することで、DXの実行に向けた有力な戦力とみなされるようになるでしょう。
活かせる職種
VBAはエンジニア志望の方はもちろん、非エンジニアとして就職する場合でも業務に役立つ言語です。たとえエンジニア就職を目指さないとしても、VBAを学習することでITに詳しい有用な人材であるとみられるようになるでしょう。VBAは幅広い職種で働くうえで活用することができるため、どなたでも学習して損はない言語といえます。
また、開発現場によってはVBAを用いてシステム開発を行うこともあります。VBAを用いたシステム開発の例としては、中心となるシステムの周辺システムとしてVBAを用いてツールを作成するケースなどが挙げられます。VBAの知識を備えておくことで、エンジニアとして就職を目指す際にも活躍の幅が広がります。
\15年超の実績を持つレバテックが運営/
\15年超の実績を持つレバテックが運営/
7.まとめ
VBAは、ビジネスの現場で多く利用されるOfficeツールを用いた業務を効率化するために有効なツールです。学習することで、就職活動の際のアピールポイントの一つになります。書籍やWebサイトを使って学習を始めてみることをおすすめします。
ITエンジニアを目指す新卒学生向け就活エージェントならレバテックルーキー
レバテックルーキーは、レバテックが運営するITエンジニア専門の就活エージェントです。多数のITエンジニアのキャリア支援経験のあるアドバイザーが、あなたのスキルと希望に合わせた企業の紹介から、人事目線での面接対策など、就職までを一貫してサポートします。ES添削、面接対策、ポートフォリオ作成サポートなども実施していますので、まずは一度カウンセリングにお越しください。
就活アドバイザーに相談してみる