I don't like the scrollbar that comes with the Frame, so I add a scrollbar control and link it to the frame.
The properties of the Frame that need to be looked at are the .Height, .ScrollHeight and .ScrollTop properties (similar for .Width, .ScrollWidth and .ScrollLeft)
Code:
Private Sub ScrollBar1_Change()
Frame1.ScrollTop = ScrollBar1.Value
End Sub
Private Sub UserForm_Initialize()
Dim oneControl As MSForms.Control
Dim maxHeight As Single
Dim bottomBorder As Single
bottomBorder = 5: Rem adjust to taste
For Each oneControl In Frame1.Controls
If maxHeight < oneControl.Top + oneControl.Height Then
maxHeight = oneControl.Top + oneControl.Height
End If
Next oneControl
Frame1.ScrollHeight = maxHeight + (Frame1.Height - Frame1.InsideHeight) + bottomBorder
Me.ScrollBar1.Max = Frame1.ScrollHeight - Frame1.InsideHeight
End Sub