Accessのボタンについてお探しですね。

広告

クリックひとつで動く!Accessフォームのボタン配置と「埋め込みマクロ」の使い方

Accessで作ったデータベースを誰かに使ってもらうとき、一番大切なのが「使いやすさ」です。

画面にわかりやすいボタンを置いて、クリックするだけで画面が切り替わったり保存できたりすれば、仕事もずっとスムーズになりますよね。

でも、「プログラミングって難しそう…」と思って諦めていませんか?実は、Accessには「マクロ」という機能があって、プログラムコードを書かなくても自動化ができるんです。

特に「埋め込みマクロ」を使えば、ボタンに直接機能を組み込めるので、データベースの管理画面もスッキリしたまま、便利な自動化が実現できます。

この記事では、初めての人でも迷わず設定できるように、ボタンの置き方から埋め込みマクロの具体的な設定方法、そして実際の仕事で使えるテクニックまで、丁寧に説明していきます。

Accessの「ボタン」と「埋め込みマクロ」って何?

Accessのフォームに置く「ボタン(コマンドボタン)」は、ユーザーが操作するためのスイッチみたいなものです。

このボタンを押したときに何が起こるかを決めるのが「イベント」で、そこで実行される処理の指示書が「マクロ」や「VBA」になります。

今回注目する「埋め込みマクロ」は、作ったマクロを画面左側のオブジェクト一覧に別ファイルとして保存するのではなく、ボタン自体の中に直接しまっておく方法のことです。

この「埋め込みマクロ」を使う一番のメリットは、データベースの管理がとても楽になることです。

普通にマクロを作ると、「マクロ1」「マクロ2」みたいなファイルがどんどん増えて、「これってどのボタン用だっけ?」と分からなくなってしまいがちです。

でも、埋め込みマクロなら処理がフォームの中に収まっているので、オブジェクト一覧がごちゃごちゃしません。

それに、フォームを別のデータベースにコピーするときも、ボタンと一緒にマクロも自動的についてくるので、移行作業がずっと簡単になります。

フォームにボタンを置いてみよう

それでは、実際にフォームへボタンを配置してみましょう。

まず、対象のフォームを「デザインビュー」で開きます。

画面上部のリボンメニューから「フォームデザイン」タブを選んで、「コントロール」グループにある「ボタン」のアイコンをクリックします。

そして、フォーム上の好きな場所でクリックするか、ドラッグしてボタンを置きます。

このとき、「コマンドボタンウィザード」という画面が自動で出てくることがあります。

これは、よくある操作(レコードの移動やフォームを開くなど)を質問形式で設定できる便利な機能です。

ただ、裏でどんな設定がされているか見えにくいので、後から細かく直したいときに困ることもあります。

「埋め込みマクロ」の仕組みをきちんと理解して、自由に使いこなせるようになるには、このウィザードを一度キャンセルして、自分で設定する方法を覚えるのがおすすめです。

ウィザード画面が出たら「キャンセル」を押してください。

すると、何も機能が入っていない「コマンド0」みたいな名前のボタンだけが置かれます。

次に、このボタンを選んだ状態でF4キーを押して「プロパティシート」を表示させます。

「その他」タブにある「名前」の欄を、例えば「btnClose(閉じるボタン)」や「btnSearch(検索ボタン)」のように、何をするボタンなのか分かりやすい名前に変えておきましょう。

この「分かりやすい名前をつける」という作業が、将来的に処理が複雑になったときや、VBAに移行するときのトラブルを防ぐ大事な第一歩になります。

「クリック時」に埋め込みマクロを設定する

ボタンを置いて名前をつけたら、いよいよ動作の中身となるマクロを埋め込んでいきます。

プロパティシートの「イベント」タブを開くと、「クリック時」や「ダブルクリック時」といった項目が並んでいます。

今回はボタンを押したときの動作を設定したいので、「クリック時」の行の右端にある「…(点が三つ)」ボタンをクリックします。

「ビルダーの選択」という画面が出たら、「マクロビルダー」を選んでOKを押してください。

これで、そのボタン専用の「埋め込みマクロ」を作る画面が開きます。

見た目は普通のマクロ作成画面と同じですが、保存先がボタンの中に限定されているのが違いです。

マクロビルダーの画面では、「新しいアクションの追加」というメニューから、やりたいことを選んでいきます。

例えば、別のフォームを開きたい場合は「フォームを開く」を選びます。

すると、下の方に詳しい設定項目が表示されるので、「フォーム名」の欄で開きたいフォームを指定します。

「ウィンドウモード」を「ダイアログ」にすれば、開いたフォームを閉じるまで元の画面が操作できないようにもできます。

設定が終わったら、上の「保存」をクリックしてから「閉じる」を押してデザインビューに戻ります。

これで、ボタンの中に処理が「埋め込まれた」状態になりました。

フォームビューに切り替えてボタンをクリックして、ちゃんと動くか確認してみましょう。

この流れをマスターすれば、保存、削除、検索など、いろんな操作をボタン一つで実現できるようになります。

実際の仕事で使える便利なテクニック

実際の仕事では、単にフォームを開くだけじゃなく、操作ミスを防ぐ工夫や、複数の処理を組み合わせた自動化が必要になってきます。

よく使われるのが、「メッセージボックス」です。

例えば、削除ボタンみたいに危ない操作をする場合、いきなり実行するんじゃなくて、マクロの「If(条件分岐)」と「メッセージボックス」を組み合わせます。

「本当に削除しますか?」って確認メッセージを出して、「はい」が選ばれたときだけ「レコードの削除」を実行するようにすれば、うっかりミスでデータを消しちゃう事故を防げます。

また、「再クエリ(Requery)」もよく使います。

これは、データを追加したり変更したりした直後に、画面の表示を最新の状態に更新するための命令で、リアルタイムで動く在庫管理や予約システムなんかでは必須の処理です。

もし設定したボタンが反応しなかったり、エラーメッセージが出たりしたら、Accessのセキュリティ設定を確認してみてください。

マクロは便利な反面、悪いコードが入っている危険性もあるので、Accessの初期設定では無効になっていることがあります。

「ファイル」タブの「オプション」から「トラストセンター(セキュリティセンター)」の設定を開いて、データベースのフォルダを信頼できる場所として登録するか、マクロの設定を適切に変更すれば動くようになります。

また、埋め込みマクロは便利ですが、あまりに複雑な条件分岐や繰り返し処理が必要になると、マクロの機能では限界があります。

そういう場合は無理にマクロで完結させようとせず、もっと自由度の高いVBAへの切り替えを考えるタイミングかもしれません。

まずは埋め込みマクロで基礎を固めて、必要に応じてステップアップしていくのが、Access開発の王道です。

広告