Как изменить язык всех слайдов PowerPoint одновременно?

Как изменить язык всех слайдов PowerPoint одновременно?

Я хочу изменить язык проверки всех моих слайдов в PowerPoint. Я пробовал установить язык через меню «Языковые настройки», однако это меняет его только для новых PowerPoint.

решение1

Чтобы изменить языквесьPowerPoint легко, откройтеВидвкладку и выберитеКонтурвид.

Теперь нажмите

  • Ctrl+, Aчтобы выбрать все.
  • ИнструментыЯзык→ Выберите язык для настройки.

Аналогично, пока у вас все выбрано, вы можете изменить другие вещи, такие как шрифты, цвета и т. д. Хотя, конечно, во многих случаях это лучше сделать, изменив мастер-слайд, презентация, которая прошла через множество редакторов, может иметь множество «жестких» наборов форматирования, которые отклоняются от базового мастера и требуют сброса для обеспечения согласованности. Вы также можете сбросить отдельные слайды до стиля мастера, но это может привести к перемещению заполнителей, что может быть нежелательным в некоторых ситуациях.

PowerPoint2013

  • ВидКонтур→ выбрать все слайды (в левом меню) с помощью Ctrl+ A.
  • ОбзорЯзыкУстановить язык проверки...→ Выберите язык для настройки.

Что касается меня - PowerPointперезапускбыло нужно. Наверное, потому что я тоже изменилЯзык редактирования:

  • ОбзорЯзыкУстановить язык проверки...Языковые предпочтенияВыберите языки редактирования.

решение2

С использованиемPowerpoint 2010Я открыл меню «Контур» —

вкладка «контур»

Выделил весь текст (Ctrl+A), открыл меню языка и установил язык проверки.

выбор языка

И это сработало!

Меню языка находится на вкладке «Обзор» (после вкладки «Показ слайдов» и не отображается на снимке экрана).

решение3

Я улучшилОтвет Инигодля предоставления рекурсивной версии, которая изменяет все элементы на нужный язык.

Эта версия рекурсивно исследует каждую фигуру, которая является типом группы. Некоторые эксперименты показывают, что msoGroupи msoSmartArtявляются типами группы — не стесняйтесь добавлять в этот список, если найдете другие типы фигур, которые могут содержать текстовые объекты.

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

решение4

На основании ответов Иниго, Дункана, Марии и DomDev, это работает для фигур, таблиц, групп, 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

Связанный контент