【2025】VBAの基本コードを紹介!定型業務の自動化に使える実践的なサンプルも

日々の業務の中には、繰り返し行う定型業務も含まれているでしょう。VBAを使えば、そんな定型業務を自動化できます。

本記事では、VBAの基本コードを紹介しながら、実務でも使える処理の実装方法について解説します。VBAを使った自動化に興味のある方は、ぜひ参考にしてみてください。

VBAとは

VBA(Visual Basic for Applications)は、Microsoft Office製品に搭載されているプログラミング言語です。主にExcelの定型作業の自動化に使われています。

混同されやすいマクロとRPAとの違いについて見ていきましょう。

マクロとの違い

マクロとは、操作を記録して自動再生する機能を指します。例えば、セルに入力した値をコピーして別の場所に貼り付ける操作をマクロに記録すれば、ボタン一つで同じ処理が何度でも可能になります。

一方、VBAはそのマクロの中身を自分で編集したり、より複雑な処理を実装したりできるプログラミング言語です。つまり、マクロを作成する手段としてVBAが使われます。

また、VBAでできること・できないことについては、以下の記事で詳しく解説しています。

【2025】エクセルのVBAとは?VBAでできることやできないことについて解説

RPAの違い

RPAは、人間の代わりにソフトウェアロボットが提携業務を自動的に行ってくれるシステムです。自動化ではVBAと共通していますが、RPAの方がさまざまなツールと連携ができるのが特徴です。

ただし、導入には初期費用がかかることが多いため、Office製品に標準搭載されているVBAとはコスト面でも異なります。
有名なRPAツールには、Excelと同じMicrosoft社のPower Automateがあります。

VBAの基本操作

VBAを使う流れは、以下のとおりです。

  1. 開発タブを表示する
  2. VBAエディターから標準モジュールを追加する
  3. コードを記述して実行する

これらの基本操作を行う流れについて見ていきましょう。

①開発タブを表示する

VBAを使うには、開発タブを表示する必要があります。まず、リボンの上で右クリックして「リボンのユーザー設定」を開きましょう。

「リボンのユーザー設定」を開く

続いて、右側のリストから「開発」にチェックを入れて「OK」をクリックすると、リボンに開発タブが追加されます。

「開発」にチェックを入れる

②VBAエディターから標準モジュールを追加する

開発タブから「Visual Basic」を開きます。

「Visual Basic」を開く

続いて、挿入メニューから「標準モジュール」を選択しましょう。標準モジュールでは、VBAの共通コードを記述していきます。

「標準モジュール」を選択する

③コードを記述して実行する

標準モジュールにVBAコードを記述します。記述したコードは、F5キー、もしくは実行ボタンをクリックすることで実行できます。

コードの実行

また、VBAの基本的な使い方をプロから教わりたい場合は、講座の利用がおすすめです。Excelマクロ・VBAセミナーなら、VBAを使った業務効率化の手順について学べます。

Excelマクロ・VBAセミナーの詳細はこちら

VBAの基本コード〜基礎編〜

VBAでまず覚えたい基本コードは以下のとおりです。

  1. サブルーチンの定義
  2. 変数の宣言
  3. 条件分岐
  4. 繰り返し処理(For)
  5. 繰り返し処理(Do While)

これらの基本コードについて見ていきましょう。

①サブルーチンの定義

サブルーチンの定義

サブルーチンは、VBAの処理をまとめたコードの集まりです。

Sub サブルーチン名()
 実行コード
End Sub

上記のようにSubとEnd Subで囲むことで、一連の処理が定義されます。

②変数の宣言

変数の宣言

変数とは、データを一時的に保存しておく箱のようなものです。
Dimステートメントで変数を宣言します。

Sub Test()
 Dim Tax As Double
 Dim Price As Double
 Dim Total As Double Tax = 1.1 ‘ 消費税率(10%)
 Price = 1000 ‘ 税抜価格
 Total = Price * Tax ‘ 税込価格の計算 MsgBox “税込価格は ” & Total & ” 円です”
End Sub

上記のように消費税や税抜き価格を変数として定義しておくことで、値が変更になったときでも柔軟に対応が可能です。

③条件分岐(If文)

条件分岐(If文)

IF文は、条件に応じて処理を分岐させたい場合に使用します。

Sub Test()
 If Range(“A1”).Value >= 100 Then
  MsgBox “達成”
 Else
  MsgBox “未達成”
 End If
End Sub

この例では、セルA1の値が100以上かどうかで、メッセージを切り替えています。

④繰り返し処理(For)

繰り返し処理(For)

繰り返し処理は、同じ処理を何度も行うときに使われます。For文は繰り返し回数が決まっている場合の構文です。

Sub Test()
 Dim i As Integer
 For i = 1 To 5
  MsgBox i
 Next i
End Sub

このコードでは、MsgBoxに数字を表示する処理を1〜5まで繰り返しています。

⑤繰り返し処理(Do While)

繰り返し処理(Do While)

Do While文は、条件が満たされている間のみ、処理を繰り返します。

Sub Test()
 Dim i As Integer
 i = 1
 Do While i <= 5
  MsgBox i
  i = i + 1
 Loop
End Sub

Do Whileは繰り返し条件を柔軟に設定できるため、条件が変動するような処理に向いています。

また、VBAでエラーが出たときの対象法や、そのほか実務で使える基本コードについて知りたい方は、以下の記事も参考にしてみてください。

【2025】わかりやすいVBA入門ガイド!初期設定・エラー時の対処法・デバッグ方法と生成AI活用術も解説

VBAの基本コード〜応用編〜

VBAを使ってセル操作ができる以下のような応用的なテクニックを紹介します。

  1. セルに値を入力
  2. セルの値を削除
  3. セルの値をコピー/貼り付け

これらの応用的な基本コードについて見ていきましょう。

①セルに値を入力

セルに値を入力

指定したセルに値を入力するコードです。

Sub Test()
  Range(“A1”).Value = “こんにちは”
End Sub

このコードを実行すると、A1セルに「こんにちは」という文字列が出力されます。

②セルの値を削除

セルの値を削除

セルに入力された値を削除するコードです。

Sub Test()
 Range(“A1”).ClearContents
End Sub

このコードでは、A1に入力された値を削除しています。また、セルの値を削除するのに使えるメソッドには以下のようなものがあります。

メソッド 内容
.ClearContents 値のみを削除
.Clear 値・書式・背景色すべて削除
.Value = “”で値だけ空欄にする

用途によって使い分けましょう。

③セルの値をコピー/貼り付け

セルの値をコピー/貼り付け

セルに入力された値をコピーし、別のセルに貼り付けるコードです。

Sub Test()
  Range(“A1”).Copy Destination:=Range(“B1”)
End Sub

このコードでは、A1の値をB1にコピー&ペーストしています。

また、VBAの基本的な使い方を基礎から学びたい場合は、講座の利用がおすすめです。Excelマクロ・VBAセミナーなら、VBAを使った自動化処理について学べます。

Excelマクロ・VBAセミナーの詳細はこちら

VBAの基本コード〜実践編〜

VBAの基本コードを使って、実務でも使える処理のサンプルを紹介します。

  1. グラフの自動作成
  2. 複数シートのデータ集約
  3. 定型業務の自動化
  4. ファイルの自動保存
  5. メールの自動送信

これらの処理が実装できるコードについて見ていきましょう。

①グラフの自動作成

グラフの自動作成

VBAを使えば、データをもとにグラフを自動で作成できます。以下のコードでは、セル範囲B2からF6のデータを使って、折れ線グラフを生成します。

Sub Test()
 With ActiveSheet.Shapes.AddChart.Chart.
  ChartType = xlLine
  .SetSourceData Source:=Range(“B2:F6”)
 End With
End Sub

手作業でグラフを作る手間を省けるため、レポート作成の効率化が図れます。

②複数シートのデータ集約

複数シートのデータ集約

複数のワークシートに分かれたデータを、1つの「集約シート」にまとめるコードです。以下のようにループ処理を使って、2枚目以降のシートからデータをコピーします。

Sub Test()
 Dim i As Long
 For i = 2 To Sheets.Count
  With Sheets(i).Range(“A2”).CurrentRegion 
   .Copy Destination:=Sheets(“集約シート”).Cells(Rows.Count, “A”).End(xlUp).Offset(1, 0)
  End With
 Next
End Sub

大量データの整理に役立つテクニックです。

③定型業務の自動化

定型業務の自動化

毎日繰り返すような定型作業もVBAで自動化できます。以下の例では、B列の3〜5行目に今日の日付を入力しています。

Sub Test()
   Dim i As Integer
   For i = 3 To 5
       Cells(i, 2).Value = Date
   Next i
End Sub

簡単なループ処理で、一度に行う入力の手間を大幅に削減できます。

④ファイルの自動保存

ファイルの自動保存

以下のコードをThisWorkbookモジュールに記述すれば、ブックを閉じるときにファイルが自動保存されるようになります。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 ThisWorkbook.Save
End Sub

保存忘れを防止できるので、導入しておくと日々の業務を安心して行えます。

⑤メールの自動送信

メールの自動送信

Outlookと連携して、VBAから自動でメールを送ることも可能です。以下はその基本的なコードです。

Sub Test()
 Dim OutlookApp As Object
 Dim OutlookMail As Object

Set OutlookApp = CreateObject(“Outlook.Application”)

 Set OutlookMail = OutlookApp.CreateItem(0)
 With OutlookMail
  .To = “sample@example.com”
  .Subject = “サンプルメール”
  .Body = “サンプルです。”
  .Send
 End With
End Sub

報告メールを自動送信する場面などで活用できます。

VBAの基本を効率的に学ぶなら

Excelマクロ・VBAセミナー

VBAの基本を学ぶなら、講座でプロから教わるのがおすすめです。Excelマクロ・VBAセミナーでは、VBAの基本的な構文から、実際に自動化を行う流れまでを網羅的に学べます。

独学ではなにから始めたらよいのかわからないという方は、ぜひ本セミナーをチェックしてみてください。

セミナー名Excelマクロ・VBAセミナー
運営元GETT Proskill(ゲット プロスキル)
価格(税込)27,500円〜
開催期間2日間
受講形式対面(東京・名古屋・大阪)・ライブウェビナー・eラーニング

VBAでよくある質問

VBAでよくある質問をまとめました。回答を見ていきましょう。

VBAは独学で習得できる?
VBAは学習難易度が比較的低く、初心者にも向いているため、独学でも十分習得できます。学習する際は、実際にコードを書いて試すことが大切です。
VBAはいつ廃止されるの?

VBAは、現時点で廃止の予定はありません。ただし、JavaScriptをベースに作られたOfficeScriptsの登場により、徐々に移行が進む可能性があります。

それでも、具体的なアナウンスはないため、学習は継続しましょう。

VBAプログラマーの年収は?
VBAプログラマーの年収は、400〜500万円が一般的です。ただし、フリーランスの場合は、スキルや経験によっては年収500万円以上も目指せるでしょう。

VBAの基本コードについてのまとめ

今回は、VBAの基本コードについて紹介しました。難しいイメージのあるVBAですが、基本構文を理解できれば、応用スキルにもすんなりチャレンジできるでしょう。

初心者は、まず簡単なコードを真似しながら書いてみるのがおすすめです。実行と修正を繰り返しながら、VBAの書き方に慣れていきましょう。

VBAの基本コードを紹介!定型業務の自動化に使える実践的なサンプルも
最新情報をチェックしよう!