タイトル : Re^2: VBA コントロールに付加したイベントが働かない 投稿日 : 2015/09/16(Wed) 09:54 投稿者 : わごなる
魔界の仮面弁士様、御回答頂きありがとうございます。 前回この掲示板に相談させて頂いた際にも御回答頂き、大変助かりました。 早速ですが、試しました。 →生成:13064DC0 2015/09/16 09:35:38.1015625 ←解放:13064DC0 2015/09/16 09:35:42.0820313 仰るとおり、すぐに解放されてしまっていることが確認できました。 実はこの問題にぶつかる前に、グローバル定義の配列変数が 本件と同様のタイミングで初期化されてしまうことがありました。 魔界の仮面弁士様の推察通りだとすると、それについても合点がいきます。 初期化されてしまうきっかけはOLEObjectの挿入でした。 ユーザーコントロールの挿入では発生しませんでした。 現時点では解決策は見つけられていませんが、 今起きている現象がわかっただけでも大きな収穫です。 ありがとうございました。 もし何か打開策あればご教授頂けますでしょうか。 > > Set cmbPos = Range(A3) > A3 という変数ですか? > "A3" という文字列ではなく? 本来このA3のところには変数を割り当てておりましたが、 本投稿に際し、適当な定数に置き換えたつもりでした。 その場合、正しくは"A3"です。 > それと、ComboBox の生成コードに合わせるため、上記は「Range」ではなく、 > 「ActiveSheet.Range」にした方が適切かと思います。 > > Set objcmb = ActiveSheet.OLEObjects(m_objOLE_C.Name).Object > 「Set objcmb = m_objOLE_C.Object」で良いのでは。 > > ※クラスモジュール「clsObjectIvent」に下記コード > clsObjectEvent ではなく? ありがとうございます。 修正後、動作確認できました。 > > Set NewObj = New clsObjectIvent > 変数 NewObj はどこで宣言されていますか? 標準モジュールで定義しております。 Public NewObj As clsObjectEvent |