-:元々イベントが存在しません。AfterUpdateEnterExitこのあたりが使用できないところが厳しいところです。第16回.アクティブコントロールに色を付けるユーザーフォーム入門として基礎から解説します。フォーム内のどこにカーソルがあるか分かりづらい場合があります。そこで、アクティブなコントロールのバックカラーを変えたり、対応するラベルのフォントを変更したりして、アクティブなコントロールを解り易くします。ここではEnterイベントを使っていますので、これは共通化できないことになります。※これについては、何か良い方法がありそうにも思えます。良い解決策が見つかったら、新たに記事を書きますね。このように記載していました。最初に以下のツイートをみかけましたhttps://twitter.com/nukie_53/status/1215601274298621952?ref_src=twsrc%5Etfwこのツイートでリンクされている先は、http://addinbox.sakura.ne.jp/Temp/EventHandling_C2CP.htmAddinBoxという有名なサイトです。調べていく過程で見つけたページhttps://br.ccm.net/faq/29419-gestao-dos-eventos-sair-e-entrar-da-caixa-de-texto-criados-dinamicamenteAddinBoxの中の人が教えてくれました私のツイートをたどって前回の記事を読まれたようで、解決方法を教えてくれました。「API:ConnectToConnectionPointによるイベント処理の構築」http://addinbox.sakura.ne.jp/Bpca_Common.htm#C2CP併せて熟読すると良い内容として、mougさんのアーカイブリンクも紹介して頂きました。moug/VBAクラス研究室(1)~(5)https://web.archive.org/web/20120911012129/http://moug.net/faq/viewtopic.php?t=62306https://web.archive.org/web/20120911231242/http://moug.net/faq/viewtopic.php?t=62566https://web.archive.org/web/20130115194304/http://moug.net/faq/viewtopic.php?t=62720https://web.archive.org/web/20130514173245/http://moug.net/faq/viewtopic.php?t=64302https://web.archive.org/web/20150322143040/http://moug.net/faq/viewtopic.php?t=68110今回の件については、一番下の(5)がとても参考になります。function」http://msdn.microsoft.com/en-us/library/windows/desktop/bb773794(v=vs.85).aspx関連するMSDNのページもほとんどがアーカイブとなっているようで、詳細を調べるのはとても大変そうです。詳細の解説はとてもできそうにないので、知りたい方はリンクを辿って各自で調べてみてください。「...UserForm上すべてのTextBoxに対してイベントを接続させ、イベント名とConnectionPointContainer名(今回だと対象TextBox名)を列挙します。」として、VBAの全コードが掲載されています。32bit用のVBAとなっていますが、そのまま動かすことができます。実際にConnectToConnectionPointを使ってみました。フォーム上の全てのコントロールについて、フォーカスを受け取った時に背景色を変えて、フォーカスを失ったときに色を戻します。使用例という事もあり、EnterイベントとExitイベントのペアでVBAを書きました。クラスモジュールクラスにAttributeを設定する必要があります。Each)VBAクラスをエクスポートすると各種のAttributeが設定されているのが確認できます。それぞれのAttributeの意味と、さらに追加で指定できるAttributeについて説明します。Attributeの変更はVBA標準でサポートされておらず、その使用については慎重であるべきですが、どのようなものがあるかを知るのは、こちらを参照してください。-2147384829この2行がそれぞれのイベントプロシージャーに対するID数値の設定になります。Event_EnterやEvent_Exitのプロシージャー名は自由に変更して構いません。引数とVB_UserMemIdだけは一致させてください。Subフォームを作成して、適当にいろいろなコントロールを配置し動作確認してください。元の色はTagプロパティに保存するようにしています。ここはやり方がいろいろありますが、Tagプロパティの使い方の紹介も兼ねてこのようにしてみました。Frameについては、EnterとExitイベントの挙動が難しいものになります。フレーム外に移った時、フレーム内の選択コントロールはフォーカスを失いません。上記では、無理やり色を戻していますので、フレーム内の先頭コントロールからフレーム外に移り、再度フレームに戻った時は先頭コントロールに色が付きません。今回の趣旨から外れるのでVBAを複雑にしないために、この細部の挙動についての対応はしていません。実際に使うのであれば、フレーム内の最終コントロールを別途保存しておくといった方法等をかんがえる必要があります。2002クラスのインポート用雛形イベント記載部分だけになります。Subイベントプロシージャーの共通化の最後に前回も書きましたが、クラスを使った難解なVBAになってしまうので、気軽に使うという類のものではないようにも思います。汎用的にコントロールを自在に扱う必要に迫られなければ使う事はないでしょう。今回は、もし必要になった時の参考として、ここにまとめておきました。実際に使うというより、イベントの動作への理解を深める教材としてとてもよいかもしれません。一度、実際に動かしてその挙動を確認してみてください。Next)|VBA入門7.マクロって何?VBAって何?|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.ひらがな⇔カタカナの変換|エクセル基本操作トップマクロVBAユーザーフォーム入門イベントプロシージャーの共通化(Enter,Exit)このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用トップマクロVBAユーザーフォーム入門イベントプロシージャーの共通化このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。