2016-04-13 6 views
1

私は静的コントロールを持つ多数のユーザーフォームを持っています。私は、ユーザーフォームに動的に追加している一連のテクスチャボックスにイベントハンドラを適用するクラスモジュールを作成しました。私は特にクラスモジュールからユーザーフォームを扱うとき、私は、静的なコントロールで値を更新することができます...VBA Excel - ダイナミックにアドレス指定されたユーザーフォームのコントロールを更新する

IAFStep2c.Controls("chkOptIn").Value = True 

しかし、私はそれが動作しない変数に自分のユーザーフォームの名前を持つコントロールを更新しようとします。 ..

Dim oUserFOrm As Object 
Dim formName As String 
formName = "IAFStep2c" 
Set oUserFOrm = UserForms.Add(formName) 
oUserFOrm.Controls("chkOptIn").Value = True 

コントロールの値やその他のプロパティを読み取ることはできますが、値を更新することはできません。誰かがこれに対する解決策を提示することはできますか?

EDIT

は、私は以下のクラス、同じ結果に別のスプレッドシートを作成しました。 TextBox1と3は更新され、textBox2は更新されません。

Sub doStuff() 
'MsgBox ("ping") 
Dim oUserFOrm As Object 
Dim formName As String 
formName = "frmTest" 
Set oUserFOrm = UserForms.Add(formName) 
frmTest.Controls("TextBox1").Value = oUserFOrm.Controls("TextBox2").Name 
oUserFOrm.Controls("TextBox2").Value = "PING" 
frmTest.Controls("TextBox3").Value = oUserFOrm.Controls("TextBox2").TextAlign 

End Subの

+0

なぜ誰かがこの質問を落としたのですか?それは適切に公式化されています! –

+0

このような動作は再現できません。 MS Excelのどのバージョン?エラーメッセージとは何ですか?あなたはuserformをエクスポートしようとしましたが、削除して再度インポートしましたか?クラス定義を表示できますか? –

+0

Excel 2013.エラーメッセージは表示されず、フィールドの更新に失敗し、何も起こらないかのように処理が続行されます。フォームのエクスポート/インポートは試していないので、私はこれを初めて知ったので、どんな提案も感謝します。 –

答えて

0

これは、私はそれを行う方法です。私はそれをしようとしていたときに

UserForm1.Controls("Textbox1").Text = "123" 

は、少なくともそれは、私が働きます。 Office 2010.

+0

フォーム名を使用すると、私にとってもうまく動作します。フォームを取得しようとしているときです。それが起こっていない変数の名前 –

+0

[OK]。フォームを作成し、今作成されたユーザーフォームのテキストボックスを操作するのがアイデアですか?しかし、ここでこの答えを見てみてください。 :http://stackoverflow.com/qu estations/11519345/creating-form-program-in-the-module-using-vba – Vityata

関連する問題