How do I change the language of all Powerpoint slides at once?
To change the language of the entire PowerPoint easily, open the View tab and select the Outline view.
Now press
- Ctrl+A to select all.
- Tools → Language → Choose your language to set.
Likewise while you have everything selected you can change other things like fonts, colours etc. Although of course in many case this is better done by changing the slide master, a presentation that has had many editors may have lots of 'hard' formatting set which deviates from the underlying master and needs resetting to be consistent. You can also reset individual slides to the master style, but this may result in placeholders moving as well, which may be undesirable in some situations.
PowerPoint 2013
- View → Outline → select all slides (in a left menu) via Ctrl+A.
- Review → Language → Set Proofing Language... → Choose your language to set.
As for me - PowerPoint restart was needed. Probably because I also did changed Editing Language:
- Review → Language → Set Proofing Language... → Language Preferences → Choose Editing Languages.
Using Powerpoint 2010 I opened the Outline menu -
Selected all text (Ctrl+A), opened the language menu and set my proofing language
And it worked!
The language menu is located on the Review ribbon tab (after the Slide Show tab and not visible on the screenshot).
I improved upon Inigo's answer to provide a recursive version that changes all items to the desired language.
This version will recursively investigate each shape that is a group type. Some experimentation suggests that msoGroup
and msoSmartArt
are the group types - feel free to add to that list if you find other types of shapes that can hold text objects.
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