Menübefehle je nach Sprachversion
18.04.2006 09:18:13
tomtom
Ich habe folgendes Problem beim Schreiben einer sprachunabhängigen Applikation: ich habe die Speichern-Funktionen umprogrammiert, so dass beim Aufruf der Funktionen "Speichern" und "Speichern unter..." meine eigene Prozedur abläuft. Das funktioniert problemlos. Nun muss ich das Ganze aber auf vier Sprachen lauffähig machen: deutsch, französisch, italienisch, englisch. Unabhängig von der Sprachversion, die der Benutzer eingerichtet hat, soll es eben funktionieren.
Muss ich nun die Menübefehle tatsächlich in die entsprechenden Sprachen übersetzen oder gibt es da einen direkteren Weg?
Wenn ich sie übersetzen muss: weiss jemand wie die betreffenden Menübefehle in den Sprachen französisch und italienisch aussehen? Kennt jemand eine Uebersicht über alle Menübefehle in den verfügbaren Sprachen?
Nachfolgend mein implementierter Code:
Private Sub workbook_open()
Dim objLangSet As Object
Set objLangSet = Application.LanguageSettings
'"Speichern" und "Speichern unter" im Menue Datei umleiten:
'German - Germany, Austria, Liechtenstein, Luxembourg, Switzerland
If objLangSet.LanguageID(msoLanguageIDUI) = 1031 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 3079 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 5127 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 4103 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 2055 Then
With Application.CommandBars("Worksheet Menu Bar").Controls("Datei")
.Controls("Speichern").OnAction = "Save_Spezial"
.Controls("Speichern unter...").OnAction = "Save_spezial"
End With
End If
'French - France, Belgium, Canada, Luxembourg, Switzerland
If objLangSet.LanguageID(msoLanguageIDUI) = 1036 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 2060 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 3084 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 5132 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 4108 Then
With Application.CommandBars("Worksheet Menu Bar").Controls("XXXX")
.Controls("XXXX").OnAction = "Save_Spezial"
.Controls("XXXX...").OnAction = "Save_spezial"
End With
End If
'Italian - Italy, Switzerland
If objLangSet.LanguageID(msoLanguageIDUI) = 1040 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 2064 Then
With Application.CommandBars("Worksheet Menu Bar").Controls("XXXX")
.Controls("XXXX").OnAction = "Save_Spezial"
.Controls("XXXX...").OnAction = "Save_spezial"
End With
End If
'English - Australia, Belize, Canada, Caribbean, Ireland, Jamaica, New Zealand, Phillippines, South Africa, Trinidad, United Kingdom, United States
If objLangSet.LanguageID(msoLanguageIDUI) = 3081 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 10249 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 4105 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 9225 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 6153 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 8201 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 5129 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 13321 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 7177 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 11273 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 2057 Or _
objLangSet.LanguageID(msoLanguageIDUI) = 1033 Then
With Application.CommandBars("Worksheet Menu Bar").Controls("File")
.Controls("Save").OnAction = "Save_Spezial"
.Controls("Save as...").OnAction = "Save_spezial"
End With
End If
Set objLangSet = Nothing
End Sub
Herzlichen Dank für eure Hilfe!
Gruss tomtom