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

lia*_*dee 210 windows microsoft-office microsoft-powerpoint-2010 microsoft-powerpoint

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

Mas*_*len 215

要轻松更改整个PowerPoint的语言,请打开“视图”选项卡并选择“大纲”视图。

现在按

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

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

PowerPoint 2013

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

至于我 -需要重新启动PowerPoint 。可能是因为我也确实改变了编辑语言

  • 回顾语言设置校对语言... ? 语言偏好选择 编辑语言

  • 感谢您的回答,但更改语言后,新输入的文本仍为以前的语言(默认语言)。此外,如果您转到母版幻灯片,选择*幻灯片*,您会注意到,语言栏中的语言仍然是默认语言,更改它的菜单是灰色的。我快疯了,微软这么多年都没有解决这个问题。 (47认同)
  • 一旦我选择多张幻灯片甚至幻灯片上的多个元素,我就无法再选择语言了。也许是因为母版幻灯片严重损坏,我不知道 (6认同)
  • Powerpoint 非常糟糕,不是吗?当我遇到这样的问题时,我实际上很想念使用开放式办公室。一旦他们支持保存到视频,我就会回到开放办公室。 (3认同)
  • 这样做的主要限制是,如果有人以其无限的智慧创建了自定义文本框而不是使用正确的标题+内容布局,这将不起作用。 (3认同)
  • 绝对疯狂的是,这个该死的软件不会让我一劳永逸地切换演示文稿中使用的语言。是的,您可以全选并更改它 - 但是每张新幻灯片都会再次显示错误的语言集... (3认同)
  • 从最新的 Office(版本 2011,Microsoft 365 的一部分)开始,大纲技巧似乎根本不起作用。 (3认同)
  • 这**不适用于**表格、图形形状中的文本以及实际上包含可编辑文本的任何内容,但由于任何原因不会出现在大纲视图中。我有一个演示文稿,其中 95% 的内容都是这样的内容,通过您的(否则很棒的)解决方案,我成功地更改了标题和“谢谢”幻灯片的语言。对于“全局”解决方案来说非常糟糕。谢谢你们这些微软白痴,给我们带来了又一个无用的 IT 垃圾! :( (2认同)
  • @JérômeMEVEL 很烦人,不是吗?特别是这个功能的开发似乎不是火箭科学......干杯! (2认同)

lia*_*dee 35

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

大纲选项卡

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

语言选项

它奏效了!

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

  • 这适用于基本的幻灯片布局。它不会更改文本框内或嵌套在其他形状中的文本的语言。 (14认同)
  • 仅适用于单张幻灯片 (4认同)

Dun*_*nes 31

我改进了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
Run Code Online (Sandbox Code Playgroud)

  • 在 OSX 上的 PowerPoint 16.10 中运行此命令时,我收到:“编译错误:找不到方法或数据成员” (2认同)

小智 28

现有答案适用于大纲中的文本。不幸的是,就我而言,这并没有涵盖文本的重要部分,包括数字、表格等。

这个宏为我解决了这个问题:

 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
Run Code Online (Sandbox Code Playgroud)

上述宏中使用的“msoLanguageIDEnglishUS”可以替换为任何所需的语言。可以在本文中找到完整的语言列表

(归功于在这里发布原始宏的 Ganesh Kumar 。我添加了对第一级形状分组的支持。为了进一步改进它,宏可以递归查找包含其他组等的组)


tri*_*sse 14

根据 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
Run Code Online (Sandbox Code Playgroud)


Gas*_*Gas 9

除了Mastergalen提供的答案以及解决有关新类型文本的评论之外:

如果您注意到,每当您开始输入新文本时,该语言将自动变回(这很烦人),您必须更改 PowerPoint 的当前默认语言:

  • 确保 PowerPoint 窗口是活动窗口
  • Windows Taskbar(是的,实际上不在 PowerPoint 中),检查是否Language bar可见,
    • 如果不去Control Panel > Region and Language > Keyboards and Languages。单击Change keybords...,切换到Language bar选项卡并检查Docked in the taskbar选项。(这是来自Win7,因此在其他版本中可能会有所不同)。
  • 现在关键操作 - 在Language bar任务栏中,单击语言代码并切换到 EN(如果您当前希望在 PowerPoint 中使用英语)。从现在开始,PowerPoint 中的所有新文本都将使用所选语言:-)
  • 如果你想用你原来的语言写,把它改回来。

  • 但这也会改变键盘布局,不是吗?...我想输入英文文本,但我真的想保留我的德语键盘布局.... (2认同)
  • @约翰内斯。如果您右键单击任务栏中的“En”并选择“设置...”,您将看到已安装的语言德语(DE)和英语(En),如果您展开英语,则会列出“键盘”,展开键盘,并添加您喜欢的德语键盘,也可能删除英语键盘。我没有尝试过,但理论上应该可行;-) (2认同)
  • 等等,所以如果我想要不同的校对语言,我需要更改我的键盘语言吗?那是愚蠢的。 (2认同)

小智 7

Duncan 版本适用于除表格之外的所有内容。我发现了另一个似乎也适用于表格的代码:https : //stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-c​​ontains-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
Run Code Online (Sandbox Code Playgroud)


Mik*_*son 5

我在 2014 年为自己制作了一个插件,它在 PowerPoint 2016 中仍然可以正常工作。https://github.com/wobba/officeaddin/releases/tag/v1.0.1

它会扫描使用过的语言,并允许您一次更改所有内容,循环播放。

在此处输入图片说明