この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:7
ページ更新者:atom
更新日時:2026-05-17 15:24:26

タイトル: VBA

本稿はVBA(Visual Basic for Applications)の記事です。

Microsoft OfficeシリーズのExcelで使用できるプログラミング言語です。Excelの定型作業の自動化(マクロ)から、Outlook / Word / Access の操作までカバーできます。

※オブジェクト指向言語共通の概念や仕組みに関してはこちらを参照してください。

VBAの特徴

  • Office同梱で追加インストール不要 — Excelを開けばすぐ始められる
  • マクロ録画 — 操作をそのままVBAコードとして書き出せる
  • イベント駆動 — ボタンクリックやセル変更でコードを実行
  • Office製品横断 — Excel から Outlook を操作する等、複数製品をまたいで自動化可能

本ページの子ページ一覧

導入・準備

マクロ操作

文法・構文

デバッグ・エラー

VBA の最小例

Sub Hello()
    Dim name As String
    name = "World"
    MsgBox "Hello, " & name & "!"
End Sub

セル操作の基本例

Sub WriteCells()
    Range("A1").Value = "名前"
    Range("B1").Value = "年齢"
    Cells(2, 1).Value = "Taro"    ' A2
    Cells(2, 2).Value = 20        ' B2
End Sub

覚えておくと便利なオブジェクト

オブジェクト役割
ApplicationExcel全体
Workbookブック(.xlsxファイル)
Worksheetシート
Rangeセル範囲
Cells(row, col)行・列インデックスでセル指定

注意点

  • マクロ有効ブックは .xlsm として保存(.xlsxではマクロが消える)
  • 外部から受け取った.xlsmファイルのマクロは、有効化前にコードを確認する(マルウェアリスクあり)
  • VBAは時代的にレガシー寄り。新規案件では Power Automate や Python + openpyxl も選択肢
  • Office 64bit版と32bit版で API Declare 文の書き方が変わる(PtrSafe 必須)

関連