Hi,
Thanks to all. I've decided to use the following, (which works on my test form at least!)
MD

Function Arr(MySet As String)
    Select Case MySet
        Case Is = "A"
            Arr = Array("A", "B", "C", "D")
        Case Is = "B"
            Arr = Array("E", "F", "G", "H")
        Case Is = "C"
            Arr = Array("I", "J", "K", "L")
    End Select
    
End Function
Private Sub UserForm_Initialize() 
    For Each A In Arr("B")
        ListBox1.AddItem A
    Next
End Sub