難解というか、よくわからないプロパティの代表格といえるタグプロパティについてです。
タグプロパティについて
フォームやレポート上の各コントロールに存在するプロパティです。また、フォームやレポートそのものにも存在します。
画像はフォーム上のテキストボックスのプロパティを開いたところです。
タグプロパティにはデフォルトでは何も記されておらず、ステータスバーにはプロパティの説明として
「オブジェクトと共に保存する参照用データを設定します。」
と表示されています。
これだけでは何のことかわかりませんので、次はマイクロソフトの公式説明です。
他のプロパティとは異なり、"Tag/タグ" プロパティの設定値は、オブジェクトの属性に影響を与えません。
このプロパティを使用すると、他のプロパティの設定値に影響を与えずに、またはその他の副作用を発生させることなく、識別のための文字列をオブジェクトに割り当てることができます。プロシージャに変数として渡されるフォーム、レポート、データ アクセス ページ、セクション、またはコントロールの ID を確認する必要がある場合に、"Tag/タグ" プロパティは便利です。
(マイクロソフトサポートページ"Tag/タグ" プロパティ - Accessより)
これもちょっと難しくてよくわかりませんが、重要なのは「"Tag/タグ" プロパティの設定値は、オブジェクトの属性に影響を与えません」というところです。
つまりこのプロパティに何を記しても何も起こりません。ただし「テキスト1.Tag」などとして値を取得することはできるので、うまい使い方があれば使ってみてください、ということです。
使用例
それでは実際にタグプロパティをどう使うかですが、一例として「コントロールを任意のグループに分ける」が挙げられます。
これはブログのタグなどと同じように捉えればわかりやすいかと思います。ブログのタグは「見たい記事を選ぶ」のに役立ちますが、Accessのタグは「処理の対象となるコントロールを選ぶ」のに役立ちます。
具体例として「チェックボックスの一部を一括Onにするボタンを作る」ということをやってみます。
画像はフォームのデザインビューです。並んでいるチェックボックスのうち左半分のものをすべて選択し、タグプロパティの値を「セリーグ」とします。
同じく右半分は「パリーグ」とします。
そしてフォームモジュールにこのようなコードを記します。
2つあるコマンドボタン(「cmd_セ全選択」「cmd_パ全選択」)のどちらをクリックしてもフォーム上のすべてのコントロールを走査しますが、タグプロパティの値によってOnにすべきものかそうでないかを区別し、該当するものについてはすべてOn(True)にします。
フォームビューでコマンドボタンをクリックしたところです。
タグプロパティを使って対応付けた左側のチェックボックスがすべてOnになっています。
(※各チェックボックスの既定値を「False」つまりOffにしていますのでご注意ください)
他のプロパティ(例えば名前プロパティ)を利用して同じようなことはできますが、それぞれのプロパティに割り当てられている機能に影響する恐れがあり、やはり好ましくありません。その点タグプロパティは何の機能の割り当てもなく影響がないため、このような処理に適しています。