2012-06-04 10:01:31 +0000 2012-06-04 10:01:31 +0000
166
166

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

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

Ответы (8)

178
178
178
2013-03-17 17:29:41 +0000

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

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

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

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

PowerPoint 2013

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

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

  • ПросмотрЯзыкУстановить язык проверки…Параметры языкаПерейти к редактированию языков.
34
34
34
2012-06-04 10:01:32 +0000

С помощью Powerpoint 2010 я открыл меню Outline -

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

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

Языковое меню находится на вкладке “Лента обозрения” (после вкладки “Слайд-шоу” и не отображается на скриншоте).

24
24
24
2013-08-09 08:11:56 +0000

Существующие ответы работают с текстом, который присутствует в наброске. К сожалению, в моем случае это не охватило значительную часть текста, включая рисунки, таблицы и т.д.

Данный макрос решил для меня проблему:

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

“msoLanguageIDEnglishUS”, который используется в вышеуказанном макросе, может быть заменен на любой желаемый язык. Полный список языков можно найти в этой статье

(Кредит идет Ганеш Кумар, который разместил оригинальный макрос здесь . Я добавил поддержку первого уровня группировки форм. Для его дальнейшего улучшения макрос можно сделать рекурсивным для поиска групп, которые содержат другие группы и т.д.).

22
22
22
2013-11-25 09:52:03 +0000

Я улучшил Inigo’s answer для предоставления рекурсивной версии, которая изменяет все элементы на нужный язык.

Эта версия будет рекурсивно исследовать каждую фигуру, которая является групповым типом. Некоторые эксперименты показывают, что 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
10
10
10
2016-07-09 09:41:22 +0000

Основываясь на ответах Иниго, Дункана, Марии и Домдева, это работает для форм, таблиц, групп, 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
```.
7
7
7
2014-05-22 13:36:52 +0000

Версия Дункана хорошо работает для всего, кроме столов. Я нашел еще один код, который, кажется, тоже работает с таблицами: 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
6
6
2016-07-04 12:52:11 +0000

В дополнение к ответу, предоставленному Mastergalen и комментариям относительно нового текста:

Если вы заметили, что язык будет автоматически меняться обратно всякий раз, когда вы начинаете вводить новый текст (что очень раздражает), вы должны изменить текущий язык по умолчанию для PowerPoint:

  • убедитесь, что окно PowerPoint является активным окном
  • в Windows Taskbar (да, на самом деле не в PowerPoint), проверьте, если Language bar видно,
  • если не переходить к Control Panel > Region and Language > Keyboards and Languages. Нажмите на Change keybords..., перейдите на вкладку Language bar и установите флажок Docked in the taskbar.
  • теперь ключевое действие - в Language bar на панели задач, кликните на код языка и переключитесь на EN (если вы хотите в настоящее время использовать английский язык в PowerPoint). Отныне весь новый текст в PowerPoint будет на выбранном языке :-)
  • если вы хотите писать на оригинальном языке, просто измените его обратно.
3
3
3
2017-10-20 11:42:30 +0000

Я сделал дополнение еще в 2014 году для себя, который до сих пор работает нормально в PowerPoint 2016. https://github.com/wobba/officeaddin/releases/tag/v1.0.1

Он сканирует на наличие используемых языков и позволяет менять все сразу, перебирая.