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

要改变整体的语言,请打开视图选项卡,选择大纲视图。

现在按

  • Ctrl+A选择所有。当然,在很多情况下,改变幻灯片的主画面是最好的选择,但是一个有很多编辑器的演示文稿可能会有很多 “硬 "的格式设置,这就会偏离底层的主画面,需要重新设置以保持一致。你也可以将单个幻灯片重置为主样式,但这可能会导致占位符也会移动,这在某些情况下可能是不可取的。

PowerPoint 2013

-查看大纲→通过Ctrl+A选择所有的幻灯片(在左侧菜单中)。

  • 回顾* → 语言设置打样语言… →选择要设置的语言。

对于我来说,PowerPoint的重启是需要的。可能是因为我也改变了编辑语言

  • 回顾* → 语言设置打样语言…语言首选项选择编辑语言
34
34
34
2012-06-04 10:01:32 +0000

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

选择了所有的文字(Ctrl+A),打开语言菜单,设置了我的打样语言 &004

&004

,成功了!

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

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

现有的答案对大纲中的文字都可以使用。遗憾的是,在我的案例中,这并没有覆盖大部分的文字,包括数字、表格等。完整的语言列表可以在本文

中找到(功劳归功于Ganesh Kumar,他在这里发布了最初的宏这里。我增加了对第一级形状分组的支持。为了进一步改进,这个宏可以递归来寻找包含其他组的组等。)

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

我在 Inigo 的回答 的基础上改进了一个递归版本,提供了一个将所有的项目都改为所需语言的递归版本。一些实验表明,msoGroupmsoSmartArt是群组类型–如果你发现有其他类型的形状可以容纳文字对象,请随意添加到这个列表中。

10
10
10
2016-07-09 09:41:22 +0000

根据Inigo,Duncan,Maria和DomDev的答案,这对形状,表格,组,SmartArt,现在和未来的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选项。这是从Win7开始的,所以在其他版本中可能会有一点不同)。 –现在键操作–在任务栏中的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

它可以扫描使用过的语言,并允许你一次性全部更改,循环使用。