ユーザーフォーム関連
●ユーザーフォームのオブジェクト名を変数にする
ユーザーフォームのオブジェクト名をリストボックスの値で指定する方法です。
もちろんコンボボックスやテキストボックスに変更しても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 "ここに追加項目を記述"
コメントを残す