How do I change the language of all Powerpoint slides at once?











up vote
136
down vote

favorite
45












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.










share|improve this question


















  • 5




    Possible duplicate of Change the spell-checking language on a PowerPoint presentation
    – sancho.s
    Aug 31 '16 at 7:06










  • It 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
    Nov 8 '17 at 9:45










  • Yes there is a way to turn of spell checking: support.microsoft.com/en-us/help/937422/… -- solved my problem!
    – lebatsnok
    Nov 8 '17 at 9:48















up vote
136
down vote

favorite
45












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.










share|improve this question


















  • 5




    Possible duplicate of Change the spell-checking language on a PowerPoint presentation
    – sancho.s
    Aug 31 '16 at 7:06










  • It 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
    Nov 8 '17 at 9:45










  • Yes there is a way to turn of spell checking: support.microsoft.com/en-us/help/937422/… -- solved my problem!
    – lebatsnok
    Nov 8 '17 at 9:48













up vote
136
down vote

favorite
45









up vote
136
down vote

favorite
45






45





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.










share|improve this question













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.







windows microsoft-office microsoft-powerpoint microsoft-powerpoint-2010






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jun 4 '12 at 10:01









liamzebedee

1,20121217




1,20121217








  • 5




    Possible duplicate of Change the spell-checking language on a PowerPoint presentation
    – sancho.s
    Aug 31 '16 at 7:06










  • It 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
    Nov 8 '17 at 9:45










  • Yes there is a way to turn of spell checking: support.microsoft.com/en-us/help/937422/… -- solved my problem!
    – lebatsnok
    Nov 8 '17 at 9:48














  • 5




    Possible duplicate of Change the spell-checking language on a PowerPoint presentation
    – sancho.s
    Aug 31 '16 at 7:06










  • It 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
    Nov 8 '17 at 9:45










  • Yes there is a way to turn of spell checking: support.microsoft.com/en-us/help/937422/… -- solved my problem!
    – lebatsnok
    Nov 8 '17 at 9:48








5




5




Possible duplicate of Change the spell-checking language on a PowerPoint presentation
– sancho.s
Aug 31 '16 at 7:06




Possible duplicate of Change the spell-checking language on a PowerPoint presentation
– sancho.s
Aug 31 '16 at 7:06












It 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
Nov 8 '17 at 9:45




It 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
Nov 8 '17 at 9:45












Yes there is a way to turn of spell checking: support.microsoft.com/en-us/help/937422/… -- solved my problem!
– lebatsnok
Nov 8 '17 at 9:48




Yes there is a way to turn of spell checking: support.microsoft.com/en-us/help/937422/… -- solved my problem!
– lebatsnok
Nov 8 '17 at 9:48










8 Answers
8






active

oldest

votes

















up vote
147
down vote



accepted










I know an answer has already been accepted, but that only changes the proofing language of a single text box, and requires you to change all of them manually.



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.


  • ToolsLanguage → 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





  • ViewOutline → select all slides (in a left menu) via Ctrl+A.


  • ReviewLanguageSet Proofing Language... → Choose your language to set.


As for me - PowerPoint restart was needed.
Probably because I also did changed Editing Language:





  • ReviewLanguageSet Proofing Language...Language PreferencesChoose Editing Languages.






share|improve this answer



















  • 22




    Thanks 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
    Apr 25 '14 at 14:52








  • 1




    Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?!
    – Mike
    Dec 5 '14 at 9:05






  • 1




    For the record, in Office 2013, the Language menu is in the Review pane (Set Proofing Language)
    – Maria Ines Parnisari
    May 18 '15 at 4:28








  • 2




    Powerpoint 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
    Oct 9 '15 at 14:06






  • 2




    Main 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
    Sep 18 at 13:42


















up vote
34
down vote













Using Powerpoint 2010 I opened the Outline menu -



outline tab



Selected all text (Ctrl+A), opened the language menu and set my proofing language



language option



And it worked!



The language menu is located on the Review ribbon tab (after the Slide Show tab and not visible on the screenshot).






share|improve this answer



















  • 4




    Only works for a single slide
    – Helge Klein
    Oct 16 '13 at 8:12






  • 8




    This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes.
    – Duncan Jones
    Nov 25 '13 at 9:53










  • Works on Office 2007 too.
    – Alfredo Osorio
    Nov 12 '14 at 19:03










  • Worked on Office Mac too.
    – Jim McKeeth
    Nov 13 '14 at 18:35


















up vote
20
down vote













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.)






share|improve this answer























  • +1 Good start. See my answer for a fully recursive version based on this answer.
    – Duncan Jones
    Nov 25 '13 at 9:52




















up vote
17
down vote













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





share|improve this answer



















  • 1




    When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
    – Etienne Low-Décarie
    Feb 17 at 20:20




















up vote
8
down vote













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





share|improve this answer























  • 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
    Feb 17 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.
    – tricasse
    Feb 19 at 10:06




















up vote
6
down vote













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






share|improve this answer






























    up vote
    2
    down vote













    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 if Language bar is visible,


      • if not go to 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).



    • 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.






    share|improve this answer























    • Oh God, why would they do anything like that?! Thank you, worked perfectly.
      – Thibault D.
      Feb 24 '17 at 13:40










    • Exactly! should be added to the accepted answer as well.
      – Abdelhafid Madoui
      Mar 4 at 10:53










    • But 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.
      Jul 16 at 12:53






    • 1




      @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
      Jul 16 at 21:24


















    up vote
    2
    down vote













    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.



    enter image description here






    share|improve this answer






















      protected by Community May 25 '14 at 22:07



      Thank you for your interest in this question.
      Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



      Would you like to answer one of these unanswered questions instead?














      8 Answers
      8






      active

      oldest

      votes








      8 Answers
      8






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      147
      down vote



      accepted










      I know an answer has already been accepted, but that only changes the proofing language of a single text box, and requires you to change all of them manually.



      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.


      • ToolsLanguage → 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





      • ViewOutline → select all slides (in a left menu) via Ctrl+A.


      • ReviewLanguageSet Proofing Language... → Choose your language to set.


      As for me - PowerPoint restart was needed.
      Probably because I also did changed Editing Language:





      • ReviewLanguageSet Proofing Language...Language PreferencesChoose Editing Languages.






      share|improve this answer



















      • 22




        Thanks 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
        Apr 25 '14 at 14:52








      • 1




        Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?!
        – Mike
        Dec 5 '14 at 9:05






      • 1




        For the record, in Office 2013, the Language menu is in the Review pane (Set Proofing Language)
        – Maria Ines Parnisari
        May 18 '15 at 4:28








      • 2




        Powerpoint 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
        Oct 9 '15 at 14:06






      • 2




        Main 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
        Sep 18 at 13:42















      up vote
      147
      down vote



      accepted










      I know an answer has already been accepted, but that only changes the proofing language of a single text box, and requires you to change all of them manually.



      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.


      • ToolsLanguage → 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





      • ViewOutline → select all slides (in a left menu) via Ctrl+A.


      • ReviewLanguageSet Proofing Language... → Choose your language to set.


      As for me - PowerPoint restart was needed.
      Probably because I also did changed Editing Language:





      • ReviewLanguageSet Proofing Language...Language PreferencesChoose Editing Languages.






      share|improve this answer



















      • 22




        Thanks 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
        Apr 25 '14 at 14:52








      • 1




        Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?!
        – Mike
        Dec 5 '14 at 9:05






      • 1




        For the record, in Office 2013, the Language menu is in the Review pane (Set Proofing Language)
        – Maria Ines Parnisari
        May 18 '15 at 4:28








      • 2




        Powerpoint 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
        Oct 9 '15 at 14:06






      • 2




        Main 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
        Sep 18 at 13:42













      up vote
      147
      down vote



      accepted







      up vote
      147
      down vote



      accepted






      I know an answer has already been accepted, but that only changes the proofing language of a single text box, and requires you to change all of them manually.



      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.


      • ToolsLanguage → 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





      • ViewOutline → select all slides (in a left menu) via Ctrl+A.


      • ReviewLanguageSet Proofing Language... → Choose your language to set.


      As for me - PowerPoint restart was needed.
      Probably because I also did changed Editing Language:





      • ReviewLanguageSet Proofing Language...Language PreferencesChoose Editing Languages.






      share|improve this answer














      I know an answer has already been accepted, but that only changes the proofing language of a single text box, and requires you to change all of them manually.



      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.


      • ToolsLanguage → 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





      • ViewOutline → select all slides (in a left menu) via Ctrl+A.


      • ReviewLanguageSet Proofing Language... → Choose your language to set.


      As for me - PowerPoint restart was needed.
      Probably because I also did changed Editing Language:





      • ReviewLanguageSet Proofing Language...Language PreferencesChoose Editing Languages.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Mar 15 '17 at 20:22









      Der Hochstapler

      66.9k48230283




      66.9k48230283










      answered Mar 17 '13 at 17:29









      Mastergalen

      1,65411012




      1,65411012








      • 22




        Thanks 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
        Apr 25 '14 at 14:52








      • 1




        Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?!
        – Mike
        Dec 5 '14 at 9:05






      • 1




        For the record, in Office 2013, the Language menu is in the Review pane (Set Proofing Language)
        – Maria Ines Parnisari
        May 18 '15 at 4:28








      • 2




        Powerpoint 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
        Oct 9 '15 at 14:06






      • 2




        Main 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
        Sep 18 at 13:42














      • 22




        Thanks 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
        Apr 25 '14 at 14:52








      • 1




        Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?!
        – Mike
        Dec 5 '14 at 9:05






      • 1




        For the record, in Office 2013, the Language menu is in the Review pane (Set Proofing Language)
        – Maria Ines Parnisari
        May 18 '15 at 4:28








      • 2




        Powerpoint 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
        Oct 9 '15 at 14:06






      • 2




        Main 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
        Sep 18 at 13:42








      22




      22




      Thanks 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
      Apr 25 '14 at 14:52






      Thanks 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
      Apr 25 '14 at 14:52






      1




      1




      Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?!
      – Mike
      Dec 5 '14 at 9:05




      Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?!
      – Mike
      Dec 5 '14 at 9:05




      1




      1




      For the record, in Office 2013, the Language menu is in the Review pane (Set Proofing Language)
      – Maria Ines Parnisari
      May 18 '15 at 4:28






      For the record, in Office 2013, the Language menu is in the Review pane (Set Proofing Language)
      – Maria Ines Parnisari
      May 18 '15 at 4:28






      2




      2




      Powerpoint 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
      Oct 9 '15 at 14:06




      Powerpoint 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
      Oct 9 '15 at 14:06




      2




      2




      Main 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
      Sep 18 at 13:42




      Main 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
      Sep 18 at 13:42












      up vote
      34
      down vote













      Using Powerpoint 2010 I opened the Outline menu -



      outline tab



      Selected all text (Ctrl+A), opened the language menu and set my proofing language



      language option



      And it worked!



      The language menu is located on the Review ribbon tab (after the Slide Show tab and not visible on the screenshot).






      share|improve this answer



















      • 4




        Only works for a single slide
        – Helge Klein
        Oct 16 '13 at 8:12






      • 8




        This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes.
        – Duncan Jones
        Nov 25 '13 at 9:53










      • Works on Office 2007 too.
        – Alfredo Osorio
        Nov 12 '14 at 19:03










      • Worked on Office Mac too.
        – Jim McKeeth
        Nov 13 '14 at 18:35















      up vote
      34
      down vote













      Using Powerpoint 2010 I opened the Outline menu -



      outline tab



      Selected all text (Ctrl+A), opened the language menu and set my proofing language



      language option



      And it worked!



      The language menu is located on the Review ribbon tab (after the Slide Show tab and not visible on the screenshot).






      share|improve this answer



















      • 4




        Only works for a single slide
        – Helge Klein
        Oct 16 '13 at 8:12






      • 8




        This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes.
        – Duncan Jones
        Nov 25 '13 at 9:53










      • Works on Office 2007 too.
        – Alfredo Osorio
        Nov 12 '14 at 19:03










      • Worked on Office Mac too.
        – Jim McKeeth
        Nov 13 '14 at 18:35













      up vote
      34
      down vote










      up vote
      34
      down vote









      Using Powerpoint 2010 I opened the Outline menu -



      outline tab



      Selected all text (Ctrl+A), opened the language menu and set my proofing language



      language option



      And it worked!



      The language menu is located on the Review ribbon tab (after the Slide Show tab and not visible on the screenshot).






      share|improve this answer














      Using Powerpoint 2010 I opened the Outline menu -



      outline tab



      Selected all text (Ctrl+A), opened the language menu and set my proofing language



      language option



      And it worked!



      The language menu is located on the Review ribbon tab (after the Slide Show tab and not visible on the screenshot).







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Jan 25 '13 at 6:10









      random

      12.7k84657




      12.7k84657










      answered Jun 4 '12 at 10:01









      liamzebedee

      1,20121217




      1,20121217








      • 4




        Only works for a single slide
        – Helge Klein
        Oct 16 '13 at 8:12






      • 8




        This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes.
        – Duncan Jones
        Nov 25 '13 at 9:53










      • Works on Office 2007 too.
        – Alfredo Osorio
        Nov 12 '14 at 19:03










      • Worked on Office Mac too.
        – Jim McKeeth
        Nov 13 '14 at 18:35














      • 4




        Only works for a single slide
        – Helge Klein
        Oct 16 '13 at 8:12






      • 8




        This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes.
        – Duncan Jones
        Nov 25 '13 at 9:53










      • Works on Office 2007 too.
        – Alfredo Osorio
        Nov 12 '14 at 19:03










      • Worked on Office Mac too.
        – Jim McKeeth
        Nov 13 '14 at 18:35








      4




      4




      Only works for a single slide
      – Helge Klein
      Oct 16 '13 at 8:12




      Only works for a single slide
      – Helge Klein
      Oct 16 '13 at 8:12




      8




      8




      This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes.
      – Duncan Jones
      Nov 25 '13 at 9:53




      This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes.
      – Duncan Jones
      Nov 25 '13 at 9:53












      Works on Office 2007 too.
      – Alfredo Osorio
      Nov 12 '14 at 19:03




      Works on Office 2007 too.
      – Alfredo Osorio
      Nov 12 '14 at 19:03












      Worked on Office Mac too.
      – Jim McKeeth
      Nov 13 '14 at 18:35




      Worked on Office Mac too.
      – Jim McKeeth
      Nov 13 '14 at 18:35










      up vote
      20
      down vote













      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.)






      share|improve this answer























      • +1 Good start. See my answer for a fully recursive version based on this answer.
        – Duncan Jones
        Nov 25 '13 at 9:52

















      up vote
      20
      down vote













      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.)






      share|improve this answer























      • +1 Good start. See my answer for a fully recursive version based on this answer.
        – Duncan Jones
        Nov 25 '13 at 9:52















      up vote
      20
      down vote










      up vote
      20
      down vote









      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.)






      share|improve this answer














      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.)







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Jan 4 '16 at 10:37









      Tobias Kienzler

      2,21852660




      2,21852660










      answered Aug 9 '13 at 8:11









      Inigo

      30123




      30123












      • +1 Good start. See my answer for a fully recursive version based on this answer.
        – Duncan Jones
        Nov 25 '13 at 9:52




















      • +1 Good start. See my answer for a fully recursive version based on this answer.
        – Duncan Jones
        Nov 25 '13 at 9:52


















      +1 Good start. See my answer for a fully recursive version based on this answer.
      – Duncan Jones
      Nov 25 '13 at 9:52






      +1 Good start. See my answer for a fully recursive version based on this answer.
      – Duncan Jones
      Nov 25 '13 at 9:52












      up vote
      17
      down vote













      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





      share|improve this answer



















      • 1




        When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
        – Etienne Low-Décarie
        Feb 17 at 20:20

















      up vote
      17
      down vote













      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





      share|improve this answer



















      • 1




        When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
        – Etienne Low-Décarie
        Feb 17 at 20:20















      up vote
      17
      down vote










      up vote
      17
      down vote









      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





      share|improve this answer














      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






      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Nov 21 at 7:27









      Marcus Mangelsdorf

      511517




      511517










      answered Nov 25 '13 at 9:52









      Duncan Jones

      321321




      321321








      • 1




        When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
        – Etienne Low-Décarie
        Feb 17 at 20:20
















      • 1




        When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
        – Etienne Low-Décarie
        Feb 17 at 20:20










      1




      1




      When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
      – Etienne Low-Décarie
      Feb 17 at 20:20






      When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
      – Etienne Low-Décarie
      Feb 17 at 20:20












      up vote
      8
      down vote













      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





      share|improve this answer























      • 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
        Feb 17 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.
        – tricasse
        Feb 19 at 10:06

















      up vote
      8
      down vote













      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





      share|improve this answer























      • 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
        Feb 17 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.
        – tricasse
        Feb 19 at 10:06















      up vote
      8
      down vote










      up vote
      8
      down vote









      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





      share|improve this answer














      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






      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Apr 17 '17 at 21:55

























      answered Jul 9 '16 at 9:41









      tricasse

      49238




      49238












      • 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
        Feb 17 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.
        – tricasse
        Feb 19 at 10:06




















      • 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
        Feb 17 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.
        – tricasse
        Feb 19 at 10:06


















      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
      Feb 17 at 20:27




      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
      Feb 17 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.
      – tricasse
      Feb 19 at 10:06






      @EtienneLow-Décarie: The API might have changed in PowerPoint 16; I don't have it so I can't check, sorry.
      – tricasse
      Feb 19 at 10:06












      up vote
      6
      down vote













      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






      share|improve this answer



























        up vote
        6
        down vote













        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






        share|improve this answer

























          up vote
          6
          down vote










          up vote
          6
          down vote









          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






          share|improve this answer














          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







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited May 23 '17 at 12:41









          Community

          1




          1










          answered May 22 '14 at 13:36









          Maria

          6111




          6111






















              up vote
              2
              down vote













              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 if Language bar is visible,


                • if not go to 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).



              • 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.






              share|improve this answer























              • Oh God, why would they do anything like that?! Thank you, worked perfectly.
                – Thibault D.
                Feb 24 '17 at 13:40










              • Exactly! should be added to the accepted answer as well.
                – Abdelhafid Madoui
                Mar 4 at 10:53










              • But 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.
                Jul 16 at 12:53






              • 1




                @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
                Jul 16 at 21:24















              up vote
              2
              down vote













              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 if Language bar is visible,


                • if not go to 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).



              • 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.






              share|improve this answer























              • Oh God, why would they do anything like that?! Thank you, worked perfectly.
                – Thibault D.
                Feb 24 '17 at 13:40










              • Exactly! should be added to the accepted answer as well.
                – Abdelhafid Madoui
                Mar 4 at 10:53










              • But 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.
                Jul 16 at 12:53






              • 1




                @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
                Jul 16 at 21:24













              up vote
              2
              down vote










              up vote
              2
              down vote









              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 if Language bar is visible,


                • if not go to 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).



              • 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.






              share|improve this answer














              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 if Language bar is visible,


                • if not go to 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).



              • 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.







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Mar 20 '17 at 10:04









              Community

              1




              1










              answered Jul 4 '16 at 12:52









              Gas

              1314




              1314












              • Oh God, why would they do anything like that?! Thank you, worked perfectly.
                – Thibault D.
                Feb 24 '17 at 13:40










              • Exactly! should be added to the accepted answer as well.
                – Abdelhafid Madoui
                Mar 4 at 10:53










              • But 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.
                Jul 16 at 12:53






              • 1




                @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
                Jul 16 at 21:24


















              • Oh God, why would they do anything like that?! Thank you, worked perfectly.
                – Thibault D.
                Feb 24 '17 at 13:40










              • Exactly! should be added to the accepted answer as well.
                – Abdelhafid Madoui
                Mar 4 at 10:53










              • But 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.
                Jul 16 at 12:53






              • 1




                @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
                Jul 16 at 21:24
















              Oh God, why would they do anything like that?! Thank you, worked perfectly.
              – Thibault D.
              Feb 24 '17 at 13:40




              Oh God, why would they do anything like that?! Thank you, worked perfectly.
              – Thibault D.
              Feb 24 '17 at 13:40












              Exactly! should be added to the accepted answer as well.
              – Abdelhafid Madoui
              Mar 4 at 10:53




              Exactly! should be added to the accepted answer as well.
              – Abdelhafid Madoui
              Mar 4 at 10:53












              But 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.
              Jul 16 at 12:53




              But 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.
              Jul 16 at 12:53




              1




              1




              @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
              Jul 16 at 21:24




              @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
              Jul 16 at 21:24










              up vote
              2
              down vote













              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.



              enter image description here






              share|improve this answer



























                up vote
                2
                down vote













                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.



                enter image description here






                share|improve this answer

























                  up vote
                  2
                  down vote










                  up vote
                  2
                  down vote









                  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.



                  enter image description here






                  share|improve this answer














                  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.



                  enter image description here







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Oct 20 '17 at 13:58

























                  answered Oct 20 '17 at 11:42









                  Mikael Svenson

                  165128




                  165128

















                      protected by Community May 25 '14 at 22:07



                      Thank you for your interest in this question.
                      Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



                      Would you like to answer one of these unanswered questions instead?



                      Popular posts from this blog

                      AnyDesk - Fatal Program Failure

                      How to calibrate 16:9 built-in touch-screen to a 4:3 resolution?

                      QoS: MAC-Priority for clients behind a repeater