お世話になります
VBAでユーザフォームのコントロールのイベントを共有化することをこころみています。
いきなり、複雑なことをすると分からなくなるので、単純なsampleをつくって動きを調べてみようと思ったのですが、エラーが発生して動きません。原因が分からないので教えてくれませんか?
仕様:ユーザフォームにテキストボックス(Name: txtbox1)を配置してテキストボックスの値が変化したらテキストボックスの.ForeColorが変化する
問題点:フォームを起動しようとすると下記のエラーが発生してフォームが起動しない
コードは以下の通りです。
ブレイクボイントをかけてしらべると 2 の箇所でエラーが発生します。
ユーザフォームのコードの 1 の箇所でClass1の 2 の箇所を参照する際、myTextboxがtargetTextBoxと同等のプロパティ持たないので発生するようです。myTextboxもtargetTextBox同じ変数の型で宣言しているので問題ないと思うのですが、なぜでしょう
Class1
VBA(Class1)
1 2Option Explicit 3 4Private WithEvents myTextbox As MSForms.Textbox 5 6 7 8Public Sub textbox_config(ByVal targetTextBox As MSForms.Textbox) 9 10 myTextbox = targetTextBox '・・・・・2 11 12End Sub 13 14 15Private Sub myTextbox_Change() 16 17myTextbox.ForeColor = RGB(0, 0, 0) 18 19End Sub 20
ユーザフォームのコード
VBA
1Option Explicit 2 3Private obTextbox As New Class1 4 5 6Private Sub UserForm_Initialize() 7'<<ユーザーフォームの初期化>> 8 9obTextbox.textbox_config Me.txtBox1 '・・・・・1 10 11End Sub
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/08 07:17