初心者向け解説シリーズ

VBA初心者向け:簡単なコードサンプル

nanikatoaccess

以下では、「VBA初心者向け:簡単なコードサンプルと手順」をテーマに、Microsoft Accessで初めてVBA(Visual Basic for Applications)を使う方が気軽に取り組めるような基本のステップを紹介します。VBAコードを書くと、マクロでは実現できない複雑な処理や外部連携ができるようになり、Accessの開発が一気に広がるでしょう。ぜひ本記事を参考に、少しずつVBAの世界に足を踏み入れてみてください。


1. なぜVBAを学ぶのか?

  1. 柔軟なロジックを実装できる
    • マクロでは難しいループ処理や条件分岐、外部ファイルの操作などもこなせる。
  2. 外部APIの呼び出しやファイル操作に強い
    • REST APIでWebサービスと連携、Excelファイルを自動生成、といった拡張性がVBAなら実現可能。
  3. 詳細なエラー処理とデバッグ
    • On Error GoTo でエラーをハンドリングしたり、ブレークポイントを使ったステップ実行でバグを見つけやすい。

2. 最初に覚える環境設定:VBAエディタを開く

  1. Alt + F11 キーで「VBAエディタ(VBE)」を起動するか、Access上でフォームのイベントプロパティを「イベントプロシージャイベント プロシージャイベントプロシージャ」に設定し、………ボタンを押す。
  2. 左側に「プロジェクト ウィンドウ」、右側に「コードウィンドウ」、下方に「イミディエイトウィンドウ」などがある。
  3. Option Explicit を書く習慣を付け、変数の宣言漏れを防ぐ(VBAエディタの[ツール]→[オプション]で「変数の宣言を強制する」をチェック)。

3. 簡単なコードサンプル:MsgBoxでメッセージを表示

ないものはない!お買い物なら楽天市場

3.1 標準モジュールに書く例

  1. Accessの「ナビゲーションウィンドウ」で「モジュール」を右クリック → [新しいモジュール]
  2. コードウィンドウに以下を貼り付ける:
Option Explicit

Public Sub ShowHello()
MsgBox "こんにちは、VBAの世界へようこそ!", vbInformation
End Sub
  1. イミディエイトウィンドウ(表示→イミディエイト)で ShowHello と入力し、Enterを押すと、メッセージボックスが出る

ポイント: Public Sub … End Sub の間が関数(手続き)の本体。MsgBoxで簡単なメッセージを出せる

3.2 フォームのボタンで呼び出す

  1. フォームデザインビューでボタンを配置
  2. ボタンの「イベント」タブ →「OnClick」をイベントプロシージャイベントプロシージャイベントプロシージャに設定 → […]を押してコードへ移動
  3. 以下のように書く:
Private Sub btnHello_Click()
Call ShowHello
End Sub
  1. フォームを開いてボタンをクリックすると「こんにちは、VBAの世界へようこそ!」が表示される

4. 入力チェックのサンプル:BeforeUpdateイベントでキャンセル

シナリオ: ユーザーが必須項目「顧客名」を空のまま保存しようとしたらエラーを出す

Private Sub 顧客名_BeforeUpdate(Cancel As Integer)
If IsNull(Me.顧客名) Or Me.顧客名 = "" Then
MsgBox "顧客名は必須項目です。", vbExclamation
Cancel = True ' ← 更新をキャンセル
End If
End Sub
  1. フォームのデザインビューで顧客名コントロールの「BeforeUpdate」をイベントプロシージャイベント プロシージャイベントプロシージャにする
  2. コードを貼り付け
  3. 実行時、空欄で確定しようとするとメッセージ表示+保存キャンセル→ ユーザーが入力しないと進めない

5. ファイル操作のサンプル:レポートをPDF出力

Public Sub ExportReportToPDF()
Dim strFile As String
strFile = "C:\Temp\SalesReport.pdf"

' rptSales というレポートを PDF形式で出力
DoCmd.OutputTo acOutputReport, "rptSales", acFormatPDF, strFile, False
MsgBox "レポートをPDF出力しました: " & strFile, vbInformation
End Sub

実行フロー:

  1. DoCmd.OutputTo acOutputReport, "rptSales", acFormatPDF, ... でレポートをPDFファイルへ書き出す
  2. メッセージで完了通知

活用:

  • フォームのボタン「PDF出力」クリックでこのサブを呼び出す。
  • さらにメール送信(Outlook)と組み合わせれば、1クリックでPDF生成&メール添付が可能

6. デバッグ手順: ステップ実行&ブレークポイント

  1. ブレークポイント
    • コードの左端(行番号のところ)をクリックして赤丸を付け、そこで実行を一時停止
  2. F8キーで1行ずつ実行
    • 変数の中身をローカルウィンドウやウォッチウィンドウで確認
  3. イミディエイトウィンドウで変数の値を?変数名で出力
    • 例: ? strFile と入力してEnterすると、中身を確認できる

デバッグができると、エラー原因の特定ロジックの確認がとても楽になります。初心者ほどこの機能を活用すればバグ修正がスムーズに進むでしょう。


7. エラー処理の基本: On Error GoTo

Public Sub SafeDivision()
On Error GoTo ErrHandler

Dim x As Long, y As Long
x = 10
y = 0

Dim result As Long
result = x / y ' ← 0除算エラー発生

MsgBox "結果: " & result, vbInformation
Exit Sub

ErrHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbExclamation
End Sub
  • 0除算エラーが起きたらErrHandlerにジャンプし、メッセージを出して処理を終了
  • これでアクセスがクラッシュせず安全に制御が可能

8. VBA初心者が最初に書くステップまとめ

  1. 環境整備
    • Alt+F11でVBEを開き、Option Explicitを有効にする
  2. 最初はMsgBox
    • 1行のMsgBox "こんにちは" だけで動作を確認し、自信を付ける
  3. イベントと紐付け
    • フォームの「OnClick」などでSubを呼び出し、ボタン→処理→結果の流れを体感
  4. エラー処理とデバッグ
    • On Error GoToで最低限の例外対策
    • ステップ実行・ブレークポイントに慣れる
  5. 活用の幅を広げる
    • 入力チェックやファイル操作、API連携など徐々に試す

9. まとめ:まずは小さなコードを動かしてみよう

  • VBA初心者が最初にやるべきは、MsgBoxや簡単な計算などの短いSubで“コードを書く楽しさ”を味わう
  • イベントプロシージャを設定し、フォームボタン→実行という流れを把握するとAccessアプリに溶け込みやすい
  • デバッグ機能(ブレークポイント・ステップ実行)で、変数の動きを追いかけバグを取り除く体験がVBA理解を深める
  • 最終的には外部ファイル操作HTTPリクエストなどに挑戦し、Accessの可能性を一気に広げられる

「VBAは難しそう」と感じるかもしれませんが、小さなコードから徐々に書き足すだけで、便利な自動処理がどんどん作れるようになります。まずは初歩のステップを踏みつつ、Accessのフォームやイベントと連携させながら学習を進めてみてください。

DMM
ABOUT ME
まー
まー
駆け出しブロガー
入社した会社では、Accessを活用した基幹システムが長年運用されていました。しかし、開発者の高齢化により保守が困難となり、システムの維持・更新が急務に。 ほぼAccessに触れたことのなかった私は、ゼロから学びながら基幹システムを再構築してみることに。ついにはAccessによるシステム開発エンジニアとしてのスキルを身につけるまでに成長。 元々の業務のノウハウとそれを効率化するためのツール(Access)によって業務効率化システムをいくつも開発してきました。 みなさんの”なにか(業務のノウハウ)”とAccessで業務効率化を実現するお役に立てれば幸いです。 月30万の高配当投資も行っています。最新の銘柄情報もお届けしていきます。
googleアドセンス
記事URLをコピーしました