●ユーザーフォームのオブジェクト名を変数にする

ユーザーフォームのオブジェクト名をリストボックスの値で指定する方法です。
もちろんコンボボックスやテキストボックスに変更してもOKです。

'***ListBox1の値をユーザーフォームのオブジェクト名として取得したい場合***

'変数Unameを文字列として宣言
Dim Uname as String
'変数UnameにListBox1の値(ユーザーフォームのオブジェクト名)を格納
Uname = ListBox1.Value

'Unameで指定したユーザーフォームを開く
UserForms.Add(Uname).Show

<ざっくり解説>

複数用意したユーザーフォームのオブジェクト名リストを作成して、
そのリストから選択したユーザーフォームを表示させることが出来ます。


●ユーザーフォームのオブジェクト名とコントロールオブジェクト名を変数で操作する場合

変数指定したユーザーフォームに配置した複数のコントロールオブジェクトから、
操作するコントロールオブジェクト名を変数で指定する方法です。

'***Uname(ユーザーフォームのオブジェクト名)のcNo(コントロールのオブジェクト名)を操作する場合***

'変数Uname,cNoを文字列として宣言
Dim Uname,cNo as String
'変数UnameにListBox1の値(ユーザーフォームのオブジェクト名)を格納
Uname = ListBox1.Value
'変数cNoにListBox2の値(コントロールオブジェクト名)を格納
cNo=ListBox2.Value

'cNoで指定したコントロールオブジェクトの背景色と文字色を変更する場合
With UserForms.Add(Uname)
   .Controls(cNo).BackColor=RGB(255,255,0)
   .Controls(cNo).ForeColor=RGB(255,0,0)
   .Show
With

<ざっくり解説>

このやり方を調べるのに、非常に苦労しました。
With関数で記述するところがポイントでした。
ここでつまずいた事がきっかけで
Excel VBAページを作成したい気持ちになりました。
きっといつか何処かで誰かの役に立つはず。


●ユーザーフォームのリストボックスデータを消去する

'UserForm1に配置したListBox1のデータを消去する。
UserForm1.Controls("ListBox1").Clear

●ユーザーフォームのリストボックスに項目を追加する

'UserForm1に配置したListBox1に項目を追加する。
UserForm1.Controls("ListBox1").AddItem "ここに追加項目を記述"