Повеселился с этой целью.
Рассмотрите эту пользовательскую форму в редакторе с TabStrip, 2 фрейма и некоторыми другими элементами управления.
Кадры названы от Frame0
, Frame1
и т. Д.
Предполагая, что Frame0 является ссылкой на местоположение и сначала отображается при отображении пользовательской формы, вам будет необходим код ниже.
Код:
Option Explicit
Private Sub TabStrip1_Change()
Dim i As Long, lActiveTabIndex As Long
lActiveTabIndex = Me.TabStrip1.Value
For i = 0 To Me.TabStrip1.Tabs.Count - 1
Me.Controls("Frame" & i).Visible = (i = lActiveTabIndex)
Next i
End Sub
Private Sub UserForm_Initialize()
Dim i As Long
With Me
.Height = 288 ' Adjust to your desired height
' Align all FrameX top/left to same as Frame0, delete Caption and SpecialEffect
For i = 0 To Me.TabStrip1.Tabs.Count - 1
With Me.Controls("Frame" & i)
.Top = Me.Frame0.Top
.Left = Me.Frame0.Left
.Caption = ""
.SpecialEffect = fmSpecialEffectFlat
End With
Next i
End With
' Ensure frame for first tab is displayed
TabStrip1_Change
End Sub
Первая загрузка пользовательской формы (не сохранил ни скриншот, ни рабочую книгу, извините).
Следующая вкладка нажата: