ACCESS Nameプロパティでコントロール名を取得する方法

ACCESSでフォームを作成する際、使用したコントロール(テキストボックスやボタン)に応じて処理を切り替えたい場合があります。
そんな時に、コントロール名を取得できるのがNameプロパティです。
今回は、Nameプロパティでコントロール名を取得する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSをもっと使いこなしたい方向けにACCESSの関数をご紹介していきます。
Nameプロパティとは
Nameプロパティとは、ACCESS VBAで指定したコントロールの名前を取得するプロパティです。
以下の構文で利用します。
コントロール名.Name
フォーム、もしくはレポートで配置されたコントロールを指定して名前を取得する際に利用されます。
Nameプロパティの利用例
Nameプロパティの利用例をご紹介します。
以下にサンプルフォームを準備しました。

ボタンを押した際に、それぞれのボタン名をメッセージボックスで表示するようにしてみましょう。
フォームをデザインビューで表示します。

ボタンのクリック時イベントにイベントプロシージャを設定します。

設定するイベントプロシージャの内容は以下の通りです。
Private Sub テスト1_ボタン_Click()
MsgBox Me!テスト1_ボタン.Name
End Sub
Me!テスト1_ボタンを指定して名前を取得しています。
MsgBox関数を使って取得したボタン名を表示しています。
ボタンを押してイベントを実行してみましょう。

このように、ボタン名が表示できました。
現在操作しているボタンの名前を取得する方法
上記ではNameプロパティを使用してボタン名を取得しました。
ただ、VBAのコードを見ると、Me!テスト1_ボタン.Nameという形で記述しておりボタン名自体をコードに記載しています。
ボタン名がわかっているなら.Nameで取得する必要が無いと思いますのでこういった使い方は少ないでしょう。
実際には、現在操作しているボタンの名前を動的に取得するという使い方が多いと思いますので、そのためのコードをご紹介します。
Private Sub テスト1_ボタン_Click()
Call Name_msg
End Sub
Private Sub Name_msg()
MsgBox "ボタン名は" & Me.ActiveControl.Name & "です。"
End Sub
2つのプロシージャがありますが、Name_msgをご覧ください。
ここではActiveControlプロパティを利用して現在操作しているコントロールを指定し、さらにNameプロパティでその名前を取得するという構造になっています。
さらに、もともとのテスト1_ボタン_Clickイベントについては、このName_msgを呼び出すだけとしてあります。
こうすることでボタンが増えても各ボタンに
Call Name_msg
を設定していくだけで、簡単に現在操作しているボタンの名前を取得することが可能です。
ActiveControlプロパティの利用に関しては以下の記事もご覧ください。

以上、Nameプロパティでコントロール名を取得する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に200以上のACCESSデータベースの開発・修正実績のあるはこにわガジェット(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

最後までお読みいただき、ありがとうございました。