要改变整体的语言,请打开视图选项卡,选择大纲视图。
现在按
-查看→大纲→通过Ctrl+A选择所有的幻灯片(在左侧菜单中)。
对于我来说,PowerPoint的重启是需要的。可能是因为我也改变了编辑语言:
使用Powerpoint 2010,我打开了大纲菜单 -
选择了所有的文字(Ctrl+A),打开语言菜单,设置了我的打样语言 &004
&004
,成功了!
语言菜单位于 “回顾 "功能区选项卡上(幻灯片放映选项卡之后,在截图中不可见)。
我在 Inigo 的回答 的基础上改进了一个递归版本,提供了一个将所有的项目都改为所需语言的递归版本。一些实验表明,msoGroup
和msoSmartArt
是群组类型–如果你发现有其他类型的形状可以容纳文字对象,请随意添加到这个列表中。
根据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
邓肯的版本除了表格之外,其他都很好用。我发现另一个代码似乎也可以用在表格上。 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
除了由Mastergalen提供的答案和解决关于新键入文字的意见:
如果你会注意到,每当你开始键入新的文字时,语言就会自动变回(这是非常烦人的),你必须改变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中的文字都将在选择的语言:-)
–如果你想用你原来的语言写,就把它改回来。我早在2014年就为自己做了一个插件,在PowerPoint 2016中仍然可以正常使用。 https://github.com/wobba/officeaddin/releases/tag/v1.0.1
它可以扫描使用过的语言,并允许你一次性全部更改,循环使用。