如何一次性更改所有 Powerpoint 幻灯片的语言?

如何一次性更改所有 Powerpoint 幻灯片的语言?

我想更改 Powerpoint 中所有幻灯片的校对语言。我尝试通过“语言首选项”菜单设置语言,但这只会更改新 Powerpoint 的语言。

答案1

要更改语言全部的PowerPoint 轻松打开看法选项卡并选择大纲看法。

现在按

  • Ctrl+A全选。
  • 工具语言→ 选择要设置的语言。

同样,在选择所有内容后,您可以更改其他内容,如字体、颜色等。当然,在许多情况下,最好通过更改幻灯片母版来完成此操作,但经过许多编辑的演示文稿可能有许多“硬”格式设置,这些格式与底层母版不同,需要重置才能保持一致。您还可以将单个幻灯片重置为母版样式,但这也可能导致占位符移动,在某些情况下这可能是不受欢迎的。

PowerPoint 2013

  • 看法大纲Ctrl→ 通过+选择所有幻灯片(在左侧菜单中)A
  • 审查语言设置校对语言...→ 选择要设置的语言。

至于我 - PowerPoint重新开始是需要的。可能是因为我也做了改变编辑语言

  • 审查语言设置校对语言...语言偏好选择编辑语言

答案2

使用Powerpoint 2010我打开了“大纲”菜单 -

大纲选项卡

选择所有文本(Ctrl + A),打开语言菜单并设置我的校对语言

语言选项

而且它成功了!

语言菜单位于“审阅”功能区选项卡上(幻灯片放映选项卡之后,在屏幕截图中不可见)。

答案3

我改进了Inigo 的回答提供一个递归版本,将所有项目更改为所需的语言。

此版本将递归调查属于组类型的每个形状。一些实验表明msoGroupmsoSmartArt是组类型 - 如果您发现其他类型的形状可以容纳文本对象,请随意将其添加到该列表中。

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

根据 Inigo、Duncan、Maria 和 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

相关内容