it-swarm.com.de

Wie ändere ich die Sprache aller PowerPoint-Folien gleichzeitig?

Ich möchte die Überprüfungssprache aller meiner Folien in einem PowerPoint ändern. Ich habe versucht, die Sprache über das Menü Spracheinstellungen einzustellen, dies ändert sich jedoch nur für neue Powerpoints.

149
liamzebedee

Um die Sprache des gesamten PowerPoint leicht zu ändern, öffnen Sie die Registerkarte Ansicht und wählen Sie die Gliederung Aussicht.

Jetzt drücken

  • Ctrl+A um alle auszuwählen.
  • Extras Sprache → Wählen Sie die Sprache aus, die eingestellt werden soll.

Ebenso können Sie, während Sie alles ausgewählt haben, andere Dinge wie Schriftarten, Farben usw. ändern. Obwohl dies in vielen Fällen natürlich besser durch Ändern des Folienmasters möglich ist, kann eine Präsentation, die viele Editoren hatte, viele "harte" Formatierungen haben, die festlegen weicht vom zugrunde liegenden Master ab und muss zurückgesetzt werden, um konsistent zu sein. Sie können auch einzelne Folien auf den Masterstil zurücksetzen, dies kann jedoch auch dazu führen, dass Platzhalter verschoben werden, was in bestimmten Situationen unerwünscht sein kann.

PowerPoint 2013

  • Ansicht Gliederung → Alle Folien (in einem linken Menü) über auswählen Ctrl+A.
  • Überprüfen Sprache Proof-Sprache einstellen ... → Wählen Sie Ihre Sprache zu setzen.

Was mich betrifft - PowerPoint Neustart wurde benötigt. Wahrscheinlich, weil ich auch die Bearbeitungssprache geändert habe :

  • Überprüfen Sprache Proof-Sprache einstellen ... Spracheinstellungen Wählen Sie Bearbeitungssprachen .
162
Mastergalen

Mit PowerPoint 2010 habe ich das Menü Gliederung geöffnet -

outline tab

Markierte den gesamten Text (Strg + A), öffnete das Sprachmenü und stellte meine Proofsprache ein

language option

Und es hat funktioniert!

Das Sprachmenü befindet sich auf der Registerkarte Überprüfen (nach der Registerkarte Diashow und auf dem Screenshot nicht sichtbar).

34
liamzebedee

Die vorhandenen Antworten funktionieren für Text, der in der Gliederung vorhanden ist. Leider deckte dies in meinem Fall keinen wesentlichen Teil des Textes ab, einschließlich Abbildungen, Tabellen usw.

Dieses Makro hat das Problem für mich gelöst:

 Sub ChangeProofingLanguageToEnglish()
    Dim j, k, m, scount, fcount, gcount As Integer
    scount = ActivePresentation.Slides.Count
    For j = 1 To scount
        fcount = ActivePresentation.Slides(j).Shapes.Count
        For k = 1 To fcount
            If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then
                ActivePresentation.Slides(j).Shapes(k) _
                .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUS
            End If
            If ActivePresentation.Slides(j).Shapes(k).Type = msoGroup Then
                gcount = ActivePresentation.Slides(j).Shapes(k).GroupItems.Count
                For m = 1 To gcount
                    If ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m).HasTextFrame Then
                    ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m) _
                    .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUS
            End If
                Next m
            End If
        Next k
    Next j
End Sub

Das im obigen Makro verwendete "msoLanguageIDEnglishUS" kann durch eine beliebige Sprache ersetzt werden. Die vollständige Liste der Sprachen finden Sie in diesem Artikel

(Wir danken Ganesh Kumar, der das ursprüngliche Makro veröffentlicht hat hier . Ich habe Unterstützung für die erste Ebene der Formgruppierung hinzugefügt. Um es weiter zu verbessern, kann das Makro rekursiv gemacht werden, um nach Gruppen zu suchen, die andere Gruppen usw. enthalten.)

22
Inigo

Ich habe Inigos Antwort verbessert, um eine rekursive Version bereitzustellen, die alle Elemente in die gewünschte Sprache ändert.

Diese Version untersucht rekursiv jede Form, die ein Gruppentyp ist. Einige Versuche deuten darauf hin, dass msoGroup und msoSmartArt die Gruppentypen sind. Sie können sie gerne zu dieser Liste hinzufügen, wenn Sie andere Arten von Formen finden, die Textobjekte enthalten können.

Sub ChangeProofingLanguageToEnglish()
    Dim j As Long, k As Long
    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 ChangeAllSubShapes(targetShape As shape, languageID As MsoLanguageID)
    Dim i As Long

    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
19
Duncan Jones

Basierend auf den Antworten von Inigo, Duncan, Maria und DomDev funktioniert dies jetzt und in Zukunft für Formen, Tabellen, Gruppen und SmartArt:

Sub ChangeProofingLanguageToFrench()
    Dim j, k As Integer
    Dim languageID As MsoLanguageID

    'Set this to your preferred language
    languageID = msoLanguageIDFrench

    'Loop all the slides in the document, and change the language
    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

    'Loop all the master slides, and change the language
    For j = 1 To ActivePresentation.SlideMaster.CustomLayouts.Count
        For k = 1 To ActivePresentation.SlideMaster.CustomLayouts(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.SlideMaster.CustomLayouts(j).Shapes(k), languageID
        Next k
    Next j

    'Change the default presentation language, so that all new slides respect the new language
    ActivePresentation.DefaultLanguageID = languageID
End Sub

Sub ChangeAllSubShapes(targetShape As Shape, languageID As MsoLanguageID)
    Dim i As Integer, r As Integer, c As Integer

    If targetShape.HasTextFrame Then
        targetShape.TextFrame.TextRange.languageID = languageID
    End If

    If targetShape.HasTable Then
        For r = 1 To targetShape.Table.Rows.Count
            For c = 1 To targetShape.Table.Columns.Count
                targetShape.Table.Cell(r, c).Shape.TextFrame.TextRange.languageID = languageID
            Next
        Next
    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
9
tricasse

Die Version von Duncan funktioniert gut für alles außer Tabellen. Ich habe einen anderen Code gefunden, der anscheinend auch mit Tabellen funktioniert: https://stackoverflow.com/questions/4735765/PowerPoint-2007-set-language-on-tables-charts-etc-that-contains-text

Public Sub changeLanguage()
    On Error Resume Next
    Dim gi As GroupShapes '<-this was added. used below
    'lang = "English"
    lang = "Norwegian"
    'Determine language selected
    If lang = "English" Then
        lang = msoLanguageIDEnglishUK
    ElseIf lang = "Norwegian" Then
        lang = msoLanguageIDNorwegianBokmol
    End If
    'Set default language in application
    ActivePresentation.DefaultLanguageID = lang

    'Set language in each textbox in each slide
    For Each oSlide In ActivePresentation.Slides
        Dim oShape As Shape
        For Each oShape In oSlide.Shapes
            'Check first if it is a table
            If oShape.HasTable Then
                For r = 1 To oShape.Table.Rows.Count
                    For c = 1 To oShape.Table.Columns.Count
                    oShape.Table.Cell(r, c).Shape.TextFrame.TextRange.LanguageID = lang
                    Next
                Next
            Else
                Set gi = oShape.GroupItems
                'Check if it is a group of shapes
                If Not gi Is Nothing Then
                    If oShape.GroupItems.Count > 0 Then
                        For i = 0 To oShape.GroupItems.Count - 1
                            oShape.GroupItems(i).TextFrame.TextRange.LanguageID = lang
                        Next
                    End If
                'it's none of the above, it's just a simple shape, change the language ID
                Else
                    oShape.TextFrame.TextRange.LanguageID = lang
                End If
            End If
        Next
    Next End Sub
6
Maria

Zusätzlich zu den Antworten von Mastergalen und zu den Kommentaren zu neu eingegebenem Text:

Wenn Sie bemerken, dass sich diese Sprache automatisch ändert, wenn Sie mit der Eingabe von neuem Text beginnen (was sehr ärgerlich ist), müssen Sie die aktuelle Standardsprache für PowerPoint ändern:

  • stellen Sie sicher, dass das PowerPoint-Fenster ein aktives Fenster ist
  • Überprüfen Sie im Windows Taskbar (ja, eigentlich nicht in PowerPoint), ob Language bar sichtbar ist,
    • wenn nicht, gehe zu Control Panel > Region and Language > Keyboards and Languages. Klicken Sie auf Change keybords..., wechseln Sie zur Registerkarte Language bar und aktivieren Sie die Option Docked in the taskbar. (Dies ist von Win7, könnte also in anderen Versionen etwas anders sein).
  • jetzt Tastatureingabe - Klicken Sie im Language bar in der Taskleiste auf Sprachcode und wechseln Sie zu EN (wenn Sie derzeit Englisch in PowerPoint verwenden möchten). Ab sofort wird der gesamte neue Text in PowerPoint in der ausgewählten Sprache angezeigt :-)
  • wenn Sie in Ihrer Originalsprache schreiben möchten, ändern Sie diese einfach zurück.
4
Gas

Ich habe 2014 ein Add-In für mich selbst erstellt, das in PowerPoint 2016 noch einwandfrei funktioniert. https://github.com/wobba/officeaddin/releases/tag/v1.0.1

Es sucht nach verwendeten Sprachen und ermöglicht das gleichzeitige Wechseln in einer Schleife.

 enter image description here

3
Mikael Svenson