166
52
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.
166
52
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.
178
To change the language of the entire PowerPoint easily, open the View tab and select the Outline view.
Now press
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.
As for me - PowerPoint restart was needed. Probably because I also did changed Editing Language:
1Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?! – Mike – 2014-12-05T09:05:21.660
1For the record, in Office 2013, the Language menu is in the Review pane (Set Proofing Language) – Maria Ines Parnisari – 2015-05-18T04:28:49.593
2Powerpoint 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. – mjaggard – 2015-10-09T14:06:21.413
1
@Endrju You have to change language for PowerPoint in the Windows taskbar to make newly type text be in the new language. See details in my answer. It annoyed me a lot for such long time...
– Gas – 2016-07-04T12:54:18.083As compared to a solution with VBA that uses recursion, this is of much lower quality. It is very frequent to have text boxes and other shapes added which would not be changed by this solution. – sancho.s Reinstate Monica – 2016-08-31T23:48:45.273
@Endrju [Review] > [Language] > [Set Proofing Language...], click on your language and click on [Default..] – lucazav – 2017-02-23T08:33:51.843
As a further note, this worked for me however SmartArt (i.e. flowcharts etc) did not change language. These can be changed by clicking on the containing box for the entire SmartArt and changing the language using the option in the bottom right of the PowerPoint window – mjp – 2017-03-02T19:42:53.607
This will not work for tables, text in graphic shapes and actually anything that contains editable text, but for any reason does not appear in outline view. I have a presentation where 95% of a content is such stuff and with your (otherwise great) solution I managed to change language of title and "thank you" slides. Pretty much bad as for "global" solution. Thank you, Microsoft morons, for giving us another useless piece of IT shit! :( – trejder – 2017-06-26T07:09:05.650
This does only work for existing slides. My PowerPoint just won't forget English as its spell check language, no matter what I do. As soon as I add a new slide, the new slide will have English set as its spell check language again. This must be a bug. – Exa – 2018-01-29T14:32:46.097
3Main 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. – Lilienthal – 2018-09-18T13:42:13.207
The outline is now in the proper language, but the slides still show German when I click on text in the text boxes, and still suggest German language words when you click on words with red squiggly underlining. – Abram – 2018-11-27T15:59:20.730
35Thanks 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. – Endrju – 2014-04-25T14:52:02.643
34
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).
Works on Office 2007 too. – Alfredo Osorio – 2014-11-12T19:03:05.427
Worked on Office Mac too. – Jim McKeeth – 2014-11-13T18:35:37.737
4Only works for a single slide – Helge Klein – 2013-10-16T08:12:37.977
12This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes. – Duncan Jones – 2013-11-25T09:53:30.593
24
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.
– Duncan Jones – 2013-11-25T09:52:34.26022
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
1When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
– Etienne Low-Décarie – 2018-02-17T20:20:56.870
10
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
. – Etienne Low-Décarie – 2018-02-17T20:27:12.747
@EtienneLow-Décarie: The API might have changed in PowerPoint 16; I don't have it so I can't check, sorry. – tricasse – 2018-02-19T10:06:36.297
Works for me in Powerpoint 2016 on Windows 7 (exact MS Office version is 16.0.11029.20108) – Christopher K. – 2018-12-19T16:18:12.710
Perfect! Only improvement I could think of is changing the language for slide notes sections, too :) – Marcus Mangelsdorf – 2019-04-17T09:10:24.320
7
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
6
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:
Windows Taskbar
(yes, actually not in PowerPoint), check if Language bar
is visible,
Control Panel > Region and Language > Keyboards and Languages
. Click Change keybords...
, switch to Language bar
tab and check Docked in the taskbar
option. (this is from Win7, so might be a bit different in other versions).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 :-)1Oh God, why would they do anything like that?! Thank you, worked perfectly. – Thibault D. – 2017-02-24T13:40:02.077
1Exactly! should be added to the accepted answer as well. – M. Abdelhafid – 2018-03-04T10:53:45.007
1But 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.... – Johannes S. – 2018-07-16T12:53:26.990
2@JohannesS. If you right click En
in the task bar and select Settings..
you will see in Installed languages German (DE) and English (En), if you expand English, there will be Keyboards
listed, expand Keyboards, and add your prefered German keyboard, probably remove English one also. I didnt try it, but should work in theory ;-) – Gas – 2018-07-16T21:24:48.787
Wait, so I need to change my keyboard language if I want to have different proofing language? That's stupid. – Matěj Račinský – 2019-04-04T21:38:26.547
This 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. – Piedone – 2019-11-23T13:47:41.023
3
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.
7
Possible duplicate of Change the spell-checking language on a PowerPoint presentation
– sancho.s Reinstate Monica – 2016-08-31T07:06:30.2501It 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? – lebatsnok – 2017-11-08T09:45:05.860
Yes there is a way to turn of spell checking: https://support.microsoft.com/en-us/help/937422/how-to-turn-off-automatic-spelling-checking-and-automatic-grammar-chec -- solved my problem!
– lebatsnok – 2017-11-08T09:48:03.517