Hier kommt ein Tipp aus dem Bereich Microsoft Office. Wenn Sie öfter Präsentationen in verschiedenen Sprachen erstellen, z. B. heute eine in deutscher Sprache und morgen eine in englischer Sprache, kennen Sie sicher dieses Problem: Sie schreiben einen englischen Text und fügen verschiedene Formen mit Text hinzu. Nun ist jeder Text rot unterstrichen, weil es kein deutsches Wort ist. Nun müssen Sie jedes einzelne Wort markieren und ihm die englische Spracheinstellung zuweisen. Bei 10 Folien mit 3-10 Elementen müssen Sie das also 30-100mal tun. Mit dem folgenden Makro und der folgenden Anleitung geht es deutlich schneller.
Bei Word ist es einfach, die Sprache des Textes zu ändern. Sie markieren den ganzen Text und klicken in der Statuszeile unten in Word auf die aktuell eingestellte Sprache. Es öffnet sich ein Dialog, in dem Sie die neue Sprache auswählen (siehe Abb. 1.).
|
Abb. 1: Die Spracheinstellungen für den Text in Microsoft Word ändern |
So einfach geht das bei PowerPoint nicht. Dort müssen Sie jedes Element einzeln auswählen und bearbeiten. Das ist ziemlich mühsam.
Wenn Sie im Netz nach Lösungen zu diesem Problem suchen, stoßen Sie auf zwei Makros von Duncan Jones auf der Webseite Superuser.com (/1/). Das erste Makro stellt die Sprache ein und ruft das zweite solange auf, bis alle Elemente auf allen Folien geändert wurden.
Für die englische Sprache müssen Sie die Language ID "
msoLanguageIDEnglishUK" verwenden, für die deutsche Sprache "
msoLanguageIDGerman". Eine Liste der Sprachen gibt es bei Microsoft (/2/).
Aber wir haben das Problem noch nicht gelöst:
- PowerPoint kann Makros nur speichern, wenn die Präsentation mit der Erweiterung pptm gespeichert wird.
- Theoretisch müssen Sie die Makros in jeder Präsentation speichern, in der Sie die Sprache ändern wollen.
- Wenn Sie eine einmal die Sprache auf Englisch eingestellt haben und danach eine Präsentation in deutscher Sprache erstellen wollen, müssen Sie erst alles auf Deutsch umstellen.
Ich habe für mich folgende Lösung gefunden.
- Ich lege eine leere PowerPoint-Datei mit der Erweiterung pptm (PowerPoint-Präsentation mit Makros (*.pptm)) an, z. B. Change_Languages.pptm. (siehe Abb. 2)
- In dieser Datei speichere ich meine drei Makros (Quelltext siehe unten) ab.
|
Abb. 2: Datei mit Erweiterung pptm speichern |
Wenn ich nun in einer Präsentation die Sprache ändern will, öffne ich gleichzeitig die Datei Change_Languages.pptm. In der ersten Präsentation kann ich die Makros über die Funktion "Ansicht > Makros" auswählen. Da in der ersten Präsentation keine Makros enthalten sind, wähle ich unten die Change_Languages.pptm aus (siehe Abb. 3).
|
Abb. 3: Makros aus einer anderen Präsentation auswählen |
Wenn Sie wollen, dass die Texte auf alle Folien gemäß deutscher Rechtschreibung geprüft werden, rufen Sie das Makro "
ChangeProofingLanguageToGerman" auf. Wenn Sie das für die englische Rechtschreibung haben wollen, starten Sie das Makro "
ChangeProofingLanguageToEnglish". Wenn Sie eine andere Sprache wollen, kopieren Sie das Makro, benennen es um und fügen die entsprechende Konstante für die andere Sprache ein.
Die folgende Abbildung 4 zeigt einen Auschnitt aus einer Folie vor und nach dem Aufrufen des Makros.
|
Abb. 4: vor und nach dem Makroaufruf von ChangeProofingLanguageToEnglish |
Vorher war die deutsche Sprache eingestellt. Alle englischen Texten wurden daher rot markiert. Nach dem Makroaufruf erkennt PowerPoint alle Texte als englischsprachige Texte.
Anmerkungen
Quellen der VBA-Makros
Dank an User Duncan, siehe
https://superuser.com/questions/432366/how-do-i-change-the-language-of-all-powerpoint-slides-at-once/
Sub ChangeProofingLanguageToEnglish()
Dim j, k As Integer
Dim languageID As MsoLanguageID
'Set this to your preferred language
languageID = msoLanguageIDEnglishUK
For j = 1 To ActivePresentation.Slides.Count
For k = 1 To ActivePresentation.Slides(j).Shapes.Count
ChangeAllSubShapes ActivePresentation.Slides(j).Shapes(k), languageID
Next k
Next j
End Sub
Sub ChangeProofingLanguageToGerman()
Dim j, k As Integer
Dim languageID As MsoLanguageID
'Set this to your preferred language
languageID = msoLanguageIDGerman
For j = 1 To ActivePresentation.Slides.Count
For k = 1 To ActivePresentation.Slides(j).Shapes.Count
ChangeAllSubShapes ActivePresentation.Slides(j).Shapes(k), languageID
Next k
Next j
End Sub
Sub ChangeAllSubShapes(targetShape As Shape, languageID As MsoLanguageID)
Dim i As Integer
If targetShape.HasTextFrame Then
targetShape.TextFrame.TextRange.languageID = languageID
End If
Select Case targetShape.Type
Case msoGroup, msoSmartArt
For i = 1 To targetShape.GroupItems.Count
ChangeAllSubShapes targetShape.GroupItems.Item(i), languageID
Next i
End Select
End Sub
das finde ich schon sehr perfektionistisch ;)
AntwortenLöschenda im präsentationsmodus die "Fremdwörter" ohnehin nicht unterstrichen sind, wäre ich bisher nie daraufgekommen mir die Arbeit anzutun, die Sprache für die Rechtschreibprüfung zu ändern ;)
Naja, wenn man die Rechtschreibprüfung doch als sinnvoll erachtet und nicht darauf verzichten will, muss man halt nach Perfektion streben :-)
LöschenHallo lieber Herr Fischbach,
AntwortenLöschenhaben Sie herzlichen Dank. Das war sehr hilfreich!