Option Explicit
'Patterns måste vara baserade på potensen av 2 lägsta möjliga är 2 (tror jag)
Public Enum Patterns
    ZeroToNine = 2
    AtoZ = 4
    ÅÄÖ = 8
    MathSigns = 16
End Enum
'enkelt test
Private Sub Command1_Click()
'Unika värden är 2 och 16 tillsammans är de 18
Text1.Text = ShowPattern(MathSigns Or ZeroToNine)
End Sub
'Enkelt test
Public Function ShowPattern(MyPatterns As Patterns) As String
ShowPattern = GetEnums(MyPatterns)
End Function
'Räkna ut vilka värden som är möjliga värden baserade på potensen av 2 av det insända värdet
Private Function GetEnums(ByVal Value As Integer) As String
Dim X As Integer, strRet As String
X = 1
While X < Value
    X = X * 2
    If X > Value Then
        X = X / 2
        Value = Value - X
        strRet = strRet & GetPattern(X)
        X = 1
    End If
    If X = Value Then strRet = strRet & GetPattern(X)
Wend
GetEnums = strRet
End Function
'Returnera det som det unika värdet står för.
Private Function GetPattern(ByVal Id As Integer) As String
Dim strRet As String
Dim VarId As Variant
Select Case Id
    Case 2 'ZeroToNine
        strRet = "0123456789"
    Case 4  'AtoZ
        strRet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Case 8 'ÅÄÖ
        strRet = "ÅÄÖ"
    Case 16 'MathSigns
        strRet = "+-*/\^=<>%"
End Select
GetPattern = strRet
End Function