-:元々イベントが存在しません。AfterUpdateEnterExitこのあたりが使用できないところが厳しいところです。第16回.アクティブコントロールに色を付けるユーザーフォーム入門として基礎から解説します。フォーム内のどこにカーソルがあるか分かりづらい場合があります。そこで、アクティブなコントロールのバックカラーを変えたり、対応するラベルのフォントを変更したりして、アクティブなコントロールを解り易くします。ここではEnterイベントを使っていますので、これは共通化できないことになります。※これについては、何か良い方法がありそうにも思えます。問題を解決する方法が見つかりました。第24回.イベントプロシージャーの共通化(Enter,Exit)ユーザーフォームのVBAでは、同じイベントプロシージャーを何個も作成することが多々あります。テキストボックスを複数個配置して同じイベント処理を実装する時、全く同じイベントプロシージャーをコピペで何個も作るといったことが必要になります。WithEventを使った方法を紹介しましたが、こちらで解説しています。APIを使用したかなり難しいテクニックとなります。イベントプロシージャーの共通化の雛形VBA今後、自分でも使えるように汎用のVBAコード雛形を以下に掲載しておきます。クラスモジュールモジュール名:clsEventフォームモジュールの変数型と合わせれば何でも構いません。Subフォームモジュールモジュール名:何でも構いません。標準モジュールでの.Showに合わせてください。Subイベントプロシージャーの共通化の最後に全く同じイベントプロシージャーをコピペでいくつも作るのは、誰しもあまり気は乗らないものだと思います。今回紹介した方法で1つにまとめられるのは大変便利だと思います。コントロールを追加してもVBAの変更が極めて簡単に済んでしまいます。前半の例でいえば、コンボボックスに入れられる数値を変更すればそれだけで完了してしまいます。このような場合には、極めて有効な手段だと思います。クラスを使った少々難解なVBAになってしまうので、気軽に使うという感じのものではないようにも思います。何より、もし特定のコントロールだけ特殊な処理をしたいと言ったときの改修範囲が大きくなってしまう可能性もあります。コピペでイベントを作成していれば、当該コントロールのイベントだけ変更すれば済むものです。したがって、今後の機能拡張がどのようなものが発生するかを良く考えた上で、クラスを使いイベントプロシージャーを共通化するか、コピペで頑張って作ってしまうか、どちらにするかを決定することをお勧めします。Next)|VBA入門7.マクロって何?VBAって何?|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.ひらがな⇔カタカナの変換|エクセル基本操作トップマクロVBAユーザーフォーム入門イベントプロシージャーの共通化このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用トップマクロVBAユーザーフォーム入門イベントプロシージャーの共通化このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。