質問: ### 前提・実現したいこと Excel VBAでユーザーフォームを使用する際に、プロパティウィンドウからオブジェクト名称を変更したがコードに反映されません。フォームだけでなくボタンやリストボックスも同様になっており、初期のオブジェクト名を内部的に持っているような、例えば、図のようなコードを書いて標準モジュールからGUI.Showで呼び出したときに表示されるメッセージボックスにはでdefと表示されてしまいます。 イメージ説明 GUIに名称を書き換えたはずのフォームをダブルクリックしても Private Sub UserForm_Click() End Sub というコードが差し込まれます。 かといってこれを下に書き換えても Private Sub GUI_Click() End Sub 期待通りに動きません。 どうしたらよいでしょうか? ### 補足情報(言語/FW/ツール等のバージョンなど) Excel2007です。
回答: その UserForm_ の部分は特定のオブジェクト名に依存した名前ではありません。 クラスモジュールを作成した時のコンストラクタがクラス名に関わらず `Private Sub Class_Initialize()` なのと同様に、ユーザーフォームのイベントハンドラ名はフォーム名に関わらず `Private Sub UserForm_***()` となります。