Wer viel in 2 oder mehr Sprachen per E-Mail kommuniziert, wird des Umschaltens der Rechtschreibprüfung bald überdrüssig. Doch mit etwas Code kann man eine Umschaltung der Rechtschreibprüfung zwischen mehreren Sprachen per Mausklick erreichen. Funktioniert nur bis Outlook® 2003.
Zur Verwendung dieses Beispiels beachten Sie bitte die wichtigen Hinweise, sowie den Workshop VBA in Outlook® verwenden. Den Code bitte in ein neues Modul kopieren (Einfügen -> Modul im VBA-Editor).
Für Outlook® 2000, Outlook® 2002, Outlook® 2003 - VB-Skript erforderlich
Option Explicit Public Sub SetGermanSpelling() ' Deutsche Rechtschreibprüfung einstellen Call SetSpelling("Deutsch") End Sub Public Sub SetEnglishSpelling() ' Englische Rechtschreibprüfung einstellen Call SetSpelling("Englisch") End Sub Public Sub SetFrenchSpelling() ' Französische Rechtschreibprüfung einstellen Call SetSpelling("Französisch") End Sub Private Sub SetSpelling(ByVal strLanguage As String) '===================================================================== ' Schaltet die Rechtschreibprüfung per Mausklick um. ' Funktioniert nur bis Outlook 2003 ' (c) Peter Marchert - http://www.outlook-stuff.com ' 2008-11-12 Version 1.0.0 '===================================================================== Dim strVer As String ' Outlook®-Version Dim strRegKey As String ' Schlüssel für die Rechtschreibprüfung Dim blnResult As Boolean ' Umstellung erfolgreich '--------------------------------------------------------------------- ' Outlook®-Version ermitteln '--------------------------------------------------------------------- Select Case Left(Outlook.Version, 2) Case "9.": strVer = "9.0" ' Outlook® 2000 Case "10": strVer = "10.0" ' Outlook® 2002 Case "11": strVer = "11.0" ' Outlook® 2003 End Select '--------------------------------------------------------------------- ' Registrierungsschlüssel zusammensetzen '--------------------------------------------------------------------- strRegKey = "HKCU\Software\Microsoft\Office\" & strVer & "\Outlook\Options\Spelling\Speller" '--------------------------------------------------------------------- ' Sprache umschalten '--------------------------------------------------------------------- Select Case strLanguage Case "Deutsch" blnResult = RegWrite(strRegKey, "1031Normal") Case "Englisch" blnResult = RegWrite(strRegKey, "1033Normal") Case "Französisch" blnResult = RegWrite(strRegKey, "1036Normal") Case Else MsgBox "Es ist keine Sprache definiert.", vbCritical + vbOKOnly Exit Sub End Select '--------------------------------------------------------------------- ' Umschaltung erfolgreich? '--------------------------------------------------------------------- If blnResult Then MsgBox "Die Rechtschreibprüfung wurde auf " & strLanguage & _ " umgestellt.", vbInformation + vbOKOnly Else MsgBox "Die Rechtschreibprüfung konnte nicht auf " & strLanguage & _ " umgestellt werden.", vbCritical + vbOKOnly End If End Sub Private Function RegWrite(ByVal strKey As String, ByVal varValue As Variant) As Boolean '===================================================================== ' Schreibt Daten in die Registrierung ' 2008-11-12 Version 1.0.0 '===================================================================== Dim objWsh As Object On Error Resume Next '--------------------------------------------------------------------- ' Windows Script Host instanzieren '--------------------------------------------------------------------- Set objWsh = CreateObject("WScript.Shell") '--------------------------------------------------------------------- ' Daten in Registrierung schreiben '--------------------------------------------------------------------- Call objWsh.RegWrite(strKey, varValue) '--------------------------------------------------------------------- ' Prüfen, ob Wert geschrieben wurde '--------------------------------------------------------------------- If RegRead(strKey) = varValue Then RegWrite = True '--------------------------------------------------------------------- ' Clean Up '--------------------------------------------------------------------- Set objWsh = Nothing End Function Private Function RegRead(ByVal strKey As String) As Variant '===================================================================== ' Liest Daten aus der Registrierung ' 2008-11-12 Version 1.0.0 '===================================================================== Dim objWsh As Object On Error Resume Next '--------------------------------------------------------------------- ' Windows Script Host instanzieren '--------------------------------------------------------------------- Set objWsh = CreateObject("WScript.Shell") '--------------------------------------------------------------------- ' Daten aus Registrierung lesen und zurückgeben '--------------------------------------------------------------------- RegRead = objWsh.RegRead(strKey) '--------------------------------------------------------------------- ' Clean Up '--------------------------------------------------------------------- Set objWsh = Nothing End Function