Hallo Andreas,
Post by Andreas Huhngibt also doch keine Funktion dafür. Dann werd ich es erstmal so belassen
wie es ist, um die Einschränkungen wissend. Danke für eure Antworten.
Hier wäre noch eine andere Möglichkeit:
' /// Code in Standardmodul *.bas
Option Explicit
Private Declare Function GetLocaleInfo Lib "kernel32" _
Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long
Public pMColl As Collection
Public Function MNames() As Collection
Dim i As Integer
Dim lngInfo As Long
Dim lngRet As Long
Dim strBuffer As String
Dim Coll As Collection
Set Coll = New Collection
For i = 0 To 11
lngInfo = &H38 + i
lngRet = GetLocaleInfo(0, lngInfo, vbNullString, 0)
If lngRet > 0 Then
strBuffer = String$(lngRet, 0)
lngRet = GetLocaleInfo(0, lngInfo, strBuffer, Len(strBuffer))
If lngRet Then
Coll.Add i + 1, Left$(strBuffer, lngRet - 1)
End If
End If
Next i
Set MNames = Coll
End Function
' \\\ Ende Code
Mit lngINfo &h38 + i wird die Collection mit den vollständigen Monatsnamen
gefüllt.
Mit lngInfo = &h44 + i wird die Collection mit den abgekürzten Monatsnamen
gefüllt.
Nach dem Programmstart wird einmal
Set pMColl = MNames
ausgeführt. Damit ist die als Public deklarierte Collection pMColl mit den
Monaten gefüllt und ab dann kannst Du Deine Monate einfach so abfragen:
dim Monat as integer
Monat = pMColl("August")
Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tips u. Beispielprogrammen)