[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ユーザーフォームとそのコントロールを文字列(変数)を使って参照するには』(おっとう)
UserForm1のTextBox1はUserForm1.Controls("TextBox1")で指定できますがUserform1も変数で参照するにはどうしたらよろしいでしょうか。
< 使用 Excel:Office365、使用 OS:Windows10 >
(γ) 2020/08/10(月) 16:15
myForm = "UserForm1" UserForms.Add(myForm).Show でShowすることはできますが、 UserForms.Add(myForm).Controls("TextBox1")のような使い方ができないようです。 (おっとう) 2020/08/11(火) 07:23
横からすみません。 どういう使い方を想定されているかわかりませんが、 >UserForms.Add(myForm).Controls("TextBox1") これだとインスタンスが生成されて、すぐに消えてしまうから、2行に変更しても反映されないだけだと思います。 例えば、Object型に入れてしまうとか、Withでくくるなどすれば対応できるのではないでしょうか?
Sub test() Dim UFname As String Dim UFobj As Object UFname = "UserForm1" Set UFobj = UserForms.Add(UFname) 'UFobj.TextBox1.Text = "a" UFobj.Controls("Textbox1").Text = "b" With UserForms.Add(UFname) .Controls("Textbox1").Text = "c" .Show End With UFobj.Show End Sub
(稲葉) 2020/08/11(火) 09:10
質問者の意図が良く解らないので、 VBAProject をループさせて探すか、 直に Set UFM1 = Userform1 とかするぐらいかと。 これなら、変数をつかってユーザーフォームを使うに一致するし。 まあ、質問者自体が思いつきでそう思っているだけでは。
単に興味本位なだけに思われますので、 やめておいた方が良いとおもますけどね。
(Why) 2020/08/11(火) 11:59
解決されたようですが、いったいどういう使い方されてるか、教えてもらえませんか? 既知のユーザーフォームなら、Whyさんのおっしゃるように最初から指定すればいいだけだと思いますし、 それができない理由も気になります。
(稲葉) 2020/08/11(火) 12:44
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.