I want to change the proofing language of all my slides in a Powerpoint. I've tried setting the language via the Language Preferences menu, however this only changes it for new powerpoints.
-
7Possible duplicate of Change the spell-checking language on a PowerPoint presentation– sancho.s ReinstateMonicaCellioCommented Aug 31, 2016 at 7:06
-
2It seems that the newest version of PowerPoint is especially buggy in this respect. I have a text box where I've changed the language of all text to language A. (The default language is B.) So when I start typing within that text box, the language automatically changes to B. I thought maybe changing the default language helps (having tried everything else) but no. Now the default language is A, the language of all other text in the text box is A (and I've restarted PP) but all new text still appears as B. So my only remaining question is: is there a way to switch proofing off altogether?– lebatsnokCommented Nov 8, 2017 at 9:45
-
Yes there is a way to turn of spell checking: support.microsoft.com/en-us/help/937422/… -- solved my problem!– lebatsnokCommented Nov 8, 2017 at 9:48
-
The comment by superuser.com/a/1096722/474383 is actually more relevant. Just changing the keyboard languages (in Windows, not PowerPoint) will make all the newly created text boxes adhere to that language.– Roel VermeulenCommented Jul 19, 2020 at 15:44
-
1The best solution, imo, is to save the presentation as XML and to replace language strings (e.g., "de-DE" with the desired language (e.g., "en-US"). It changes the language not just of normal slides, but also of master slides!– MrTomRodCommented Jul 15, 2023 at 2:56
9 Answers
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.
-
67Thanks for answer, but after changing the language, the newly typed text is still in the previous language (the default one). Moreover, if you go to the master slides, select the slide, you'll notice, that the language in the language bar is still the default one, and the menu to change it is greyed out. I'm getting crazy that it haven't been solved by Microsoft for so many years.– EndrjuCommented Apr 25, 2014 at 14:52
-
10Powerpoint is just shockingly bad isn't it? I actually miss using open office when I have issues like this. I'll be back to open office as soon as they support saving to a video.– mjaggardCommented Oct 9, 2015 at 14:06
-
4Main limitation of this is that if someone in their infinite wisdom created custom text box instead of using proper Title+Content layouts, this just won't work. Commented Sep 18, 2018 at 13:42
-
7Does not work for me as soon as I select multiple slides or even multiple elements on a slide I'm not able to select the language anymore. Maybe due to a very broken master slide, I don't know– KaiCommented May 13, 2020 at 15:52
-
11It's absolutely CRAZY that this shit piece of software will not let me once and for ever switch the language used in a presentation deck for good. Yes, you can select all and change it - but every new slide again is presented with the wrong language set...– ZordidCommented Oct 27, 2020 at 13:13
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).
-
5
-
19This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes. Commented Nov 25, 2013 at 9:53
-
-
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
-
2When running this in PowerPoint 16.10 on OSX, I get:
Compile error: Method or data member not found
Commented Feb 17, 2018 at 20:20 -
Thanks a lot for this brilliant solution. If I want the US English, can I just change
msoLanguageIDEnglishUK
tomsoLanguageIDEnglishUS
?– FoadCommented Dec 10, 2020 at 7:40 -
one other issue I just saw is that it apparently doesn't change the language of the text inside tables.– FoadCommented Dec 10, 2020 at 7:53
-
1For those new to Macros (on PowerPoint), help yourself: ionos.com/digitalguide/online-marketing/online-sales/… Commented Jan 5, 2021 at 22:37
-
Got "Execution error" on line targetShape.TextFrame.TextRange.languageID = languageID with Office 365.– HeboCommented Apr 28, 2023 at 13:40
The existing answers work for text that is present in the outline. Unfortunately in my case this didn't cover a significant part of the text, including figures, tables, etc.
This macro solved the problem for me :
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
The "msoLanguageIDEnglishUS" which is used in the above macro can be replaced by any desired language. The full list of languages can be found in this article
(Credit goes to Ganesh Kumar who posted the original macro here. I added support for first level of shape grouping. To further improve it the macro can be made recursive to look for groups which contain other groups, etc.)
-
+1 Good start. See my answer for a fully recursive version based on this answer. Commented Nov 25, 2013 at 9:52
Based on Inigo, Duncan, Maria and DomDev's answers, this works for shapes, tables, groups, SmartArt, now and in the future:
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
-
As for other solutions, on when running this in PowerPoint 16.10 on OSX, I get:
Compile error: Method or data member not found
. Any suggested solutions? It seems to highlight.DefaultLanguageID
. Commented Feb 17, 2018 at 20:27 -
@EtienneLow-Décarie: The API might have changed in PowerPoint 16; I don't have it so I can't check, sorry.– tricasseCommented Feb 19, 2018 at 10:06
-
Works for me in Powerpoint 2016 on Windows 7 (exact MS Office version is 16.0.11029.20108) Commented Dec 19, 2018 at 16:18
-
1Perfect! Only improvement I could think of is changing the language for slide notes sections, too :) Commented Apr 17, 2019 at 9:10
-
The compile error above is because the LanguageID property was not included in the TextFrame object in later PowerPoint versions. Use TextFrame2 instead of TextFrame... Commented Jun 2, 2021 at 13:42
In addition to answer provided by Mastergalen and to address comments regarding newly type text:
If you will notice, that language will automatically change back whenever you start to type new text (which is very annoying), you have to change current default language for PowerPoint:
- make sure PowerPoint window is an active window
- in the
Windows Taskbar
(yes, actually not in PowerPoint), check ifLanguage bar
is visible,- if not go to
Control Panel > Region and Language > Keyboards and Languages
. ClickChange keybords...
, switch toLanguage bar
tab and checkDocked in the taskbar
option. (this is from Win7, so might be a bit different in other versions).
- if not go to
- now key action - in the
Language bar
in the taskbar, click language code and switch to EN (if you want currently to use English in PowerPoint). From now on, all new text in PowerPoint will be in the selected language :-) - if you want write in your original language, just change it back.
-
3But that also changes the keyboard layout, doesn't it?... I want to type English text but I really want to keep my German keyboard layout.... Commented Jul 16, 2018 at 12:53
-
2@JohannesS. If you right click
En
in the task bar and selectSettings..
you will see in Installed languages German (DE) and English (En), if you expand English, there will beKeyboards
listed, expand Keyboards, and add your prefered German keyboard, probably remove English one also. I didnt try it, but should work in theory ;-)– GasCommented Jul 16, 2018 at 21:24 -
4Wait, so I need to change my keyboard language if I want to have different proofing language? That's stupid. Commented Apr 4, 2019 at 21:38
-
1This is THE answer. I changed the preferred language to English with Hungarian keyboard. Nothing else worked well. If you don't do something like this then all your new English text will be all underlined even if you type in a text box that you previously select all-d to English. It's crazy.– PiedoneCommented Nov 23, 2019 at 13:47
-
1@MatějRačinský no, you need to change the input language, not your keyboard layout. Windows is smart enough to distinguish between the two, so you can enter Spanish text with a French keyboard layout, and PowerPoint will check Spanish spelling. That is actually quite smart. To configure, in Windows 10 21H1, go to Language settings. You configure a list of Preferred languages at the bottom, and for each one, you can choose a (potentially different) keyboard layout. The language bar then allows you to switch between languages as well as betwen layouts independently.– bersCommented Apr 30, 2021 at 8:45
The version of Duncan works well for everything but tables. I found another code which seems to also work with tables: 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
-
1
-
Powerpoint is around since 1990, and one has to mess with flippin' VB to change the language for the entire presentation. Somewhat pathetic. Nevertheless, thanks for the script. It seems to have worked on my Powerpoint for Microsoft365 (Version 2304 Build 16.0.something.something)– Dohn JoeCommented May 12, 2023 at 14:52
I made an add-in back in 2014 for myself which still works fine in PowerPoint 2016. https://github.com/wobba/officeaddin/releases/tag/v1.0.1
It scans for used languages, and allows you to change all at once, looping over.
-
1really - this didn't make it into Powerpoint itself and is only available for windows? Commented Dec 13, 2020 at 15:45
-
I know.. and the add-in model using javascript don't support iterating over object setting the language :( Commented Dec 21, 2020 at 13:43
-
-
1The add-in still works fine in Windows desktop version of PowerPoint. But not for Online web version as the API does not support setting language. Commented Oct 16, 2022 at 8:33
If other methods don't help, unexpected changes of the language may also be caused by the language setting in the slide master.
In order to change it, go to View > Slide Master, select the parent-most master slide, select all elements, and change the language as described in the accepted answer. The change should propagate to all layouts, though placeholder text will remain in the original language.
If possible, the clean solution is to use a template configured with the correct language. However, depending on company-mandated templates / the office installation, or simply when trying to fix an existing file, this might not be possible.
-
It doesn't work on 365 v2008 build 13127.21064. Powerpoint always detect languages even if they are not in the list of language preferences. At the moment i have to go to every text box, select all, and set the "proofing language" to the desired and default. Powerpoint is a really unprofessional software Commented Jan 29, 2021 at 9:23
-