Access VBAについてお探しですね。

広告

Access VBA入門ガイド|マクロとの違いから最初の「Hello World」まで

Microsoft Accessって、大量のデータを管理するのにすごく便利なソフトですよね。

でも、毎日同じようなデータ入力やレポート作成をしていて、「この作業、もっと楽にできないかな…」って思ったことありませんか?マクロ機能を使ってみたけど、「やりたいことがどうしても実現できない!」と壁にぶつかったら、それはAccess VBAを始めるベストタイミングです。

VBAを覚えると、時間のかかるデータ処理が一瞬で終わったり、ExcelやOutlookと連携させたりと、Accessでできることがグッと広がります。

この記事では、プログラミングが初めての人でも安心して始められるように、マクロとVBAの違いから、実際に「Hello World」というプログラムを動かすところまで、丁寧に説明していきますね。

Access VBAって何?マクロとどう違うの?

Accessで作業を自動化する方法には、「マクロ」と「VBA」の2種類があります。

最初はどっちを使えばいいのか迷っちゃいますよね。

まずマクロですが、これは用意されたメニュー(「クエリを開く」とか「ウィンドウを閉じる」とか)から選んで組み合わせるだけで、自動化ができる便利な機能です。

プログラミングの知識がなくても直感的に使えるので、簡単な作業を自動化するにはピッタリなんです。

でも、もっと本格的なシステムを作ろうとすると、マクロだけではちょっと物足りなくなってきます。

たとえば「エラーが起きたときにどうするか」とか、「複雑な条件で処理を分ける」とか、「何千件ものデータを1つずつ処理する」といったことは、マクロだけでは難しいんです。

そこで登場するのがVBAです。

VBAはMicrosoft Officeに入っているプログラミング言語で、マクロではできない細かい制御ができるようになります。

エラーが起きたときに分かりやすいメッセージを出したり、エラーの記録を残したり、条件によって処理を何パターンにも分けたり…。

さらに、AccessからExcelファイルを作ってメールで送る、なんてこともVBAなら簡単にできちゃいます。

これからAccessで本格的に業務を効率化していくなら、簡単な部分はマクロを使いつつ、メインの処理はVBAで作るのがおすすめです。

VBAは覚えるのに少し時間がかかりますが、その分できることがグンと増えます。

「マクロは手軽な自動化」「VBAは本格的なシステム作り」って感じで覚えておくといいですよ。

VBAを書く場所「VBE」を使ってみよう

Access VBAを始めるのに、特別なソフトをインストールする必要はありません。

Accessが入っていれば、VBAを書くための「VBE(Visual Basic Editor)」もすでに使える状態になっています。

まずはAccessを開いて、画面上部のリボンメニューに「開発」タブがあるか確認してみてください。

もし見当たらない場合は、リボンの何もないところを右クリックして「リボンのユーザー設定」から、「開発」にチェックを入れれば表示されます。

準備ができたら、「開発」タブの「Visual Basic」ボタンをクリックするか、キーボードで「Alt + F11」を押してみましょう。

これでVBEの画面が開きます。

VBEの画面にはいくつかウィンドウがありますが、最初に覚えるのは「プロジェクトエクスプローラー」と「コードウィンドウ」の2つだけで大丈夫です。

画面左側の「プロジェクトエクスプローラー」は、今開いているAccessファイルの中身(フォームとかレポートとか)をツリー状に表示してくれる場所です。

そして画面の真ん中にある大きなスペースが、実際にプログラムを書く「コードウィンドウ」になります。

VBAを書く場所には「標準モジュール」と「フォームやレポートに関連したモジュール」の2種類があります。

フォームのボタンを押したときの動作はフォームモジュールに書きますが、最初のうちや汎用的な処理には「標準モジュール」を使うのが一般的です。

標準モジュールを追加するには、VBEのメニューから「挿入」→「標準モジュール」をクリックします。

すると「Module1」という名前で新しいモジュールが追加されて、真っ白なコードウィンドウが開きます。

これでプログラムを書く準備完了です!

さっそく「Hello World」を表示してみよう

準備ができたら、プログラミングの定番「Hello World」を表示するプログラムを作ってみましょう。

先ほど作った標準モジュールのコードウィンドウに、次のコードを入力してください。

VBAでは「Sub」で始まって「End Sub」で終わるひとかたまりを「プロシージャ」と呼びます。

これが1つの処理の単位です。

すべて半角英数字で入力しますが、ダブルクォーテーション(”)の中身だけは日本語でも大丈夫ですよ。

“`vba
Sub HelloWorld()
MsgBox “Hello World”
End Sub
“`

このコードの意味はとってもシンプル。

「HelloWorld」という名前の処理を始めて、メッセージボックス(MsgBox)で「Hello World」という文字を画面に表示して、処理を終わる、という流れです。

入力できたら、実際に動かしてみましょう。

コードのどこかにカーソルを置いた状態で、キーボードの「F5」キーを押すか、VBEの上にある再生ボタン(▶マーク)をクリックします。

すると、小さなウィンドウが表示されて「Hello World」と出てくるはずです。

これがあなたの書いた最初のプログラムが動いた瞬間です!

もう1つ、別の表示方法も覚えておくと便利です。

「イミディエイトウィンドウ」というものを使う方法です。

メッセージボックスだといちいちOKボタンを押さないといけませんが、イミディエイトウィンドウならログみたいに文字が表示されます。

コードを `Debug.Print “Hello World”` に書き換えて実行してみてください。

画面下の「イミディエイトウィンドウ」(表示されてなければ「Ctrl + G」で表示)に文字が出てきます。

この `Debug.Print` は、プログラムの途中経過をチェックするときによく使うので、今のうちに慣れておくと後々楽になりますよ。

Access VBAを学ぶときのポイント

プログラムを動かすことができたら、本格的に学ぶ前に、Access VBAならではの特徴を知っておきましょう。

もしExcel VBAの経験がある人は、ちょっと違うなと感じるかもしれません。

Excel VBAが主に「セル」や「シート」を扱うのに対して、Access VBAは「レコード(行)」や「フィールド(列)」、「クエリ」や「フォーム」といったデータベース特有のものを扱います。

Excelとは考え方が違う部分があるので、Accessならではのやり方を素直に学んでいくのがコツです。

Access VBAを効率よく学ぶために、次の3つを覚えておくといいですよ。

* **DoCmdオブジェクト**: マクロでやっていた「フォームを開く」とか「レコードを保存」といった操作は、VBAでは `DoCmd.OpenForm` みたいに `DoCmd` という命令で実行します。

これを覚えるだけで、マクロでやってたことの多くをVBAに置き換えられます。

* **DAO / ADO**: データの追加・更新・削除をコードで直接やるための技術です。

ちょっと難しくなりますが、これを覚えると「レコードセット」という仕組みを使って、データを1件ずつ自由に操作できるようになります。

* **SQLとの連携**: VBAの中でSQL(データベース言語)を組み立てて実行すると、複雑な集計や大量データの更新が一瞬でできるようになります。

初心者が挫折しないための一番のコツは、「最初から全部VBAで書こうとしないこと」です。

Accessにはもともと強力なクエリ機能があります。

複雑なデータ抽出や計算はクエリで作っておいて、VBAからは「そのクエリを実行するだけ」というシンプルな形にするのが、一番効率的でメンテナンスもしやすいんです。

まずは「フォームのボタンを押したらメッセージを出す」とか「特定の条件なら処理をストップする」みたいな小さな制御から始めて、少しずつできることを増やしていきましょう。

焦らず、実際に手を動かしながらやっていくのが、Access VBAをマスターする近道です。

データベースを自由に操れるようになると、すごく楽しいですよ!

広告