Tab strip
の使用は、例えば、 Multi page
はコントロールのコンテナではないため、コードNewTabstrip.Controls.Add...
は失敗します。 Tab strip
にはコントロールがありませんが、はのコントロールセットを維持しています。詳細については
参照:How to Use the TabStrip Control in a UserForm
そしてここに:How to Use the MultiPage Control in a UserFormは、複数ページの情報です。これはコントロール用のコンテナです。ページには独自のコントロールがありますので、それはあなたが探しているものです。
Tabstripコントロールを使用して、選択したタブに従ってNewFrameの色を変更する方法の例を示します。 (AddTabstrip
という名前のコマンドボタンで新しいユーザーフォームを作成する例を使用するには) HTH
Option Explicit
Private WithEvents NewTabStrip As TabStrip
Private NewFrame As MSForms.Frame
Private Sub AddTabstrip_Click()
If Not NewTabStrip Is Nothing Then
MsgBox "Tabstrip was allready added.", vbExclamation
Exit Sub
End If
Set NewTabStrip = Me.Controls.Add("Forms.TabStrip.1")
With NewTabStrip
.Height = Me.Height - 90
.Width = Me.Width - 30
.Top = 15
.Left = 15
End With
NewTabStrip.Tabs(0).Caption = "Tab 1"
NewTabStrip.Tabs(1).Caption = "Tab 2"
NewTabStrip.Tabs.Add "Tab3", "Tab 3"
Set NewFrame = Me.Controls.Add("Forms.Frame.1")
With NewFrame
.Height = NewTabStrip.Height - 30
.Width = NewTabStrip.Width - 30
.Top = NewTabStrip.Top + 20
.Left = NewTabStrip.Left + 15
End With
Call NewTabStripChanged
End Sub
Private Sub NewTabStrip_Change()
Call NewTabStripChanged
End Sub
Private Sub NewTabStripChanged()
' This procedure runs when the TabStrip control named NewTabStrip
' changes. This procedure will change the color of the NewFrame
' control based on which tab the user selects.
Dim i As Integer
i = NewTabStrip.SelectedItem.Index
Select Case i
Case 0
' First tab selected, change color to red.
NewFrame.BackColor = RGB(255, 0, 0)
Case 1
' Second tab selected, change color to green.
NewFrame.BackColor = RGB(0, 255, 0)
Case 2
' Third tab selected, change color to blue.
NewFrame.BackColor = RGB(0, 0, 255)
End Select
End Sub
出典
2016-05-02 12:40:31
dee
は、あなたがそれを達成したいですか?フレームは基本的に、複数のボタン、コンボボックス、リストボックスなどのコンテナです。すでに1つのコンテナ(親フォーム)とTabStripもあるため、親フォーム内に別のフォームを使用するとどうなりますか?あなたが達成したいことについてもう少し詳しく説明すれば、あなたをより良く助けることができるかもしれません。 – Ralph