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


151

尽管该线程已经很老了,但是Microsoft没有提供我所知道的解决方案。我建议Mac用户使用另一种方法:在Keynote中打开演示文稿,更改拼写语言,并可能编辑整个演示文稿,然后将其导出到PowerPoint。



1
在这方面,PowerPoint的最新版本似乎特别容易出错。我有一个文本框,其中我已将所有文本的语言更改为语言A。(默认语言是B。)因此,当我开始在该文本框中键入内容时,该语言会自动更改为B。我想可能是更改默认语言语言会有所帮助(尝试了其他所有方法),但没有。现在默认语言为A,文本框中所有其他文本的语言为A(并且我已经重新启动PP),但是所有新文本仍显示为B。所以我唯一剩下的问题是:有没有办法切换校对完全关闭?
lebatsnok

是的,有一种方法可以进行拼写检查:support.microsoft.com/en-us/help/937422/…-解决了我的问题!
lebatsnok

Answers:


165

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

现在按

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

同样,在选择了所有内容后,您可以更改字体,颜色等其他内容。尽管当然,在很多情况下,通过更改幻灯片母版可以更好地完成此操作,但是拥有许多编辑者的演示文稿可能会有很多“硬”格式设置,偏离基础主机,需要重新设置以保持一致。您也可以将单个幻灯片重置为母版样式,但这也可能导致占位符也移动,这在某些情况下可能是不希望的。

PowerPoint 2013

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

对我来说- 需要重启 PowerPoint 。可能是因为我也更改了编辑语言

  • 查看语言设置校对语言...语言首选项选择编辑语言

31
感谢您的回答,但是更改语言后,新输入的文本仍使用以前的语言(默认语言)。此外,如果您转到主幻灯片,请选择幻灯片,您会注意到,语言栏中的语言仍然是默认语言,并且用于更改它的菜单显示为灰色。我已经为微软这么多年没有解决这个问题而感到疯狂。
Endrju 2014年

1
太棒了!虽然不完美,但肯定会有所帮助。我同意@Endrju,为什么还没有解决?
2014年

1
作为记录,在Office 2013中,“语言”菜单位于“审阅”窗格(“设置校对语言”)中
Maria Ines Parnisari,2015年

2
Powerpoint简直令人震惊,不是吗?当遇到此类问题时,我实际上会错过使用开放式办公室的机会。只要他们支持保存到视频,我就会回到办公室。
mjaggard 2015年

2
这的主要局限性在于,如果某人以自己的无限智慧创建了自定义文本框,而不是使用适当的Title + Content布局,则此方法将行不通。
Lilienthal

34

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

大纲标签

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

语言选项

而且有效!

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


4
仅适用于一张幻灯片
Helge Klein 2013年

9
这适用于基本幻灯片布局。它不会更改文本框内或嵌套在其他形状内的文本的语言。
Duncan Jones

同样适用于Office 2007。
Alfredo Osorio 2014年

也可以在Office Mac上工作。
Jim McKeeth 2014年

23

现有答案适用于大纲中显示的文本。不幸的是,就我而言,这没有涵盖文本的很大一部分,包括图形,表格等。

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

 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”可以用任何所需的语言替换。完整的语言列表可以在本文中找到

(贷记给Ganesh Kumar,他在此处发布了原始宏。我添加了对形状分组第一级的支持。为了进一步改进形状,可以使该宏递归以查找包含其他组的组,等等。)


+1好开始。请参阅我的答案,以基于此答案的完全递归版本。
Duncan Jones

20

我改进了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

1
在OSX上的PowerPoint 16.10中运行此文件时,我得到:Compile error: Method or data member not found
EtienneLow-Décarie18年

10

基于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

至于其他解决方案,在OSX上的PowerPoint 16.10中运行时,得到:Compile error: Method or data member not found。有什么建议的解决方案吗?似乎突出了.DefaultLanguageID
EtienneLow-Décarie18年

@EtienneLow-Décarie:API在PowerPoint 16中可能已更改;我没有它,所以我无法检查,对不起。
tricasse '18

对我的作品在2016简报在Windows 7(确切的MS Office版本是16.0.11029.20108)
克里斯托弗K.

完善!我唯一能想到的改进就是更改了幻灯片部分的语言:)
Marcus Mangelsdorf

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

5

除了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中的所有新文本将使用所选的语言:-)
  • 如果您想用原始语言写,那就改回来。

1
哦,天哪,他们为什么要那样做?谢谢,做得很好。
Thibault D.

1
究竟!也应添加到接受的答案中。
M. Abdelhafid

1
但是,这也改变了键盘布局,不......我想输入英文文本,但我真的想保持我的德国的键盘布局....?
约翰S.

2
@JohannesS。如果右键单击En任务栏,然后选择“ Settings..安装的语言”,将显示德语(DE)和英语(En),如果展开英语,则会Keyboards列出,展开“键盘”,并添加您喜欢的德语键盘,可能会删除英文也。我没有尝试过,但应该在理论上起作用;-)
Gas

请稍等,如果要使用其他校对语言,是否需要更改键盘语言?太傻了
马捷Račinský

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.