• 締切済み

Excel VBA 全部のUserForm名

OSはXP、 Excelは2003 を使用しています。 色々なサイトを参考にさせて頂いて作ったブック内のコントロールを表に書き出すマクロが下記になるのですが、 ユーザーフォーム名を都度書き換えないといけないので、 同時にブック内のユーザーフォーム名を変数に格納する方法をどなたか教えて頂けないでしょうか? Sub test() Dim c As Control, r As Long Dim d As Control Load frmCustomerEntry  ’←☆ Worksheets("Sheet1").Activate r = 3 Cells(1, 1) = ("コントロール数:" & frmCustomerEntry.Controls.Count)  ’←☆ Cells(2, 1).Value = "No" Cells(2, 2).Value = "名前" Cells(2, 3).Value = "種類" Cells(2, 4).Value = "Caption" Cells(2, 5).Value = "高さ" Cells(2, 6).Value = "幅" Cells(2, 7).Value = "Top" Cells(2, 8).Value = "Left" Cells(2, 9).Value = "Enabled" For Each c In frmCustomerEntry.Controls Cells(r, 1).Value = r - 2 Cells(r, 2).Value = c.Name Cells(r, 3).Value = TypeName(c) If TypeName(c) = "TextBox" Then 'captionの項目がないのでエラー回避 Cells(r, 4).Value = "" ElseIf TypeName(c) = "ListBox" Then 'captionの項目がないのでエラー回避 Cells(r, 4).Value = "" Else Cells(r, 4).Value = c.Caption End If Cells(r, 5).Value = c.Height Cells(r, 6).Value = c.Width Cells(r, 7).Value = c.Top Cells(r, 8).Value = c.Left Cells(r, 9).Value = c.Enabled r = r + 1 Next c On Error GoTo 0 End Sub ***************** ブックの中にユーザーフォームが10数個あります。 名前は任意に名前に変更しています。 全て「frm」が頭に付いていて以下はバラバラです。 説明不足なところもあるかもしれませんが、 どうかよろしくお願い致します。

みんなの回答

回答No.1

こんばんは。 こんな風にすれば、出来ると思います。 Sub Test2()  myForms_Test "frmCustomerEntry" End Sub Sub myForms_Test(sName As String) 'サブプロシージャにする  Dim c As Control, r As Long  Dim d As Control  Dim UF As UserForm  Set UF = UserForms.Add(sName)  Load UserForms.Add(sName)   ThisWorkbook.Worksheets("Sheet1").Activate   ・・・

6338-tm
質問者

お礼

WindFaller様 お礼が遅くなってしまって大変申し訳ありません。 記述して頂いた分で"frmCustomerEntry"だけは出来たのですが、 Book内の全てのユーザーフォーム名を取得してくるモノが欲しかったのです。 いまこの件で時間が取れなくなってしまったので、今回はこれにて一旦締め切らせて貰います。 すみません。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A