MS Access Tips/Sample and VBA and Blog customize etc...

ラベルとコントロールの関連付けを解除する関数

デフォルトでは、テキストボックス等のコントロールを配置するとラベルが自動で付いてきます。このコントロールと関連付けられたラベルは、デザインビューでコントロールを移動させれば一緒に移動してくれて便利なのですが、逆にそれが不便だったりする事もあります。

一時的に関連付けを解除したり、また、関連付けたりしたい場合も時々あります。

AC2000以前は、ラベルを切り取りして、コントロールを選択して貼り付けすることで関連付けをしてましたが、AC2003(2002も?)以降はラベルとコントロールを選択すると、!のアイコンが現れて、それをクリックすることで関連づけができるようななりました。

ラベル関連付けの設定

ところが関連づけの解除の方は、Access2010になっても、簡単にできる手段が用意されていません。

難易度:

ラベルを選択して「切り取り」、セクションを選択して「貼り付け」で関連付けの解除はできます。ただ、これだと貼り付けられる位置がセクションの左上になってしまいますのでまた元に位置にマウスで移動させる必用があります。

別の方法として、ラベルを右クリックして[コントロールの種類の変更]-[テキストボックス]でテキストボックスに変更して、その後[コントロールの種類の変更]でラベルに戻すことで、解除できますが、標題が消えてしまいますので、標題を再設定する必用があります。

たいした手間ではないのですが、どの方法にしても3アクション以上の操作が必用なのは、何だかな~、とは思ってました。で、最近、掲示板でラベルの関連付け解除の方法についての質問があったので、思い立って、1アクションで解除できるVBAの関数を作成してみました。

標準モジュールを新規作成して、下記のコードを記述します。

このモジュールを mdlUnRelatedLabel と名前を付けて保存します。

ここからは、Access2010 に付いての説明になります。

  1. リボンの[作成]-[マクロ]をクリックします。
  2. [新しいアクションの追加]に「プロシージャの実行」と設定します。
  3. [プロシージャ名]に「UnRelatedLabel()」と設定します。
  4. 右クリックして、[サブマクロ ブロックの作成]をクリックします。サブマクロ: に「{F3}」と設定します。
  5. マクロを保存します。名前は AutoKeys とします。

Autokeysマクロの設定

以上で、フォームまたはレポートをデザインビュー(またはレイアウトビュー)で開いて、関連付けられたラベルを選択して、F3 キーを押すと、関連づけが解除されます。複数のコントロールが選択されている場合にも対応しています。

Access2007以前のAutokeysマクロの作成法は、下記を参照ください。
キーボード ショートカットを使用して Access マクロを実行する
F3キー以外をショートカットキーにする場合(例えば Ctrl+アルファベット)も上記のページを参照ください。

そのMDBのみに有効なので、新規MDBを作成したときは、設定済みMDBから、mdlUnRelatedLabelモジュールとAutokeysマクロをインポートする必用があります。

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/296-a19ba4b6
該当の記事は見つかりませんでした。