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

493,395

Solution 1

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.

Solution 2

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

Solution 3

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

Solution 4

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

Solution 5

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:
493,395

Related videos on Youtube

Rifat Bin Reza
Author by

Rifat Bin Reza

Software engineer with design-thinking mindset. Always learning, started programming when I was 11, moved to Sydney when I was 17, been working/learning since.

Updated on September 18, 2022

Comments

  • Rifat Bin Reza
    Rifat Bin Reza over 1 year

    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.

    • sancho.s ReinstateMonicaCellio
      sancho.s ReinstateMonicaCellio over 7 years
    • lebatsnok
      lebatsnok over 6 years
      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
      lebatsnok over 6 years
      Yes there is a way to turn of spell checking: support.microsoft.com/en-us/help/937422/… -- solved my problem!
    • Roel Vermeulen
      Roel Vermeulen almost 4 years
      The comment by superuser.com/a/1096722/474383 is actually more relevant. Just changing the keyboard languages (in Windows, not PowerPoint) will make all the newly created text boxes adhere to that language.
    • Halil İbrahim Oymacı
      Halil İbrahim Oymacı over 3 years
      I changed settings but it is not working for new slides, always proofing is English :S
  • Narcolepsy Khan
    Narcolepsy Khan over 10 years
    Only works for a single slide
  • Duncan Jones
    Duncan Jones over 10 years
    +1 Good start. See my answer for a fully recursive version based on this answer.
  • Duncan Jones
    Duncan Jones over 10 years
    This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes.
  • Endrju
    Endrju about 10 years
    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.
  • Alfredo Osorio
    Alfredo Osorio over 9 years
    Works on Office 2007 too.
  • Mike
    Mike over 9 years
    Awesome! While not perfect, it certainly helps. I agree with @Endrju, why isn't this fixed yet?!
  • mjaggard
    mjaggard over 8 years
    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.
  • Gas
    Gas almost 8 years
    @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...
  • sancho.s ReinstateMonicaCellio
    sancho.s ReinstateMonicaCellio over 7 years
    As 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.
  • lucazav
    lucazav about 7 years
    @Endrju [Review] > [Language] > [Set Proofing Language...], click on your language and click on [Default..]
  • mjp
    mjp about 7 years
    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
  • trejder
    trejder almost 7 years
    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! :(
  • Exa
    Exa about 6 years
    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.
  • Etienne Low-Décarie
    Etienne Low-Décarie about 6 years
    When running this in PowerPoint 16.10 on OSX, I get: Compile error: Method or data member not found
  • Etienne Low-Décarie
    Etienne Low-Décarie about 6 years
    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.
  • tricasse
    tricasse about 6 years
    @EtienneLow-Décarie: The API might have changed in PowerPoint 16; I don't have it so I can't check, sorry.
  • Johannes S.
    Johannes S. almost 6 years
    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....
  • Gas
    Gas almost 6 years
    @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 ;-)
  • Lilienthal
    Lilienthal over 5 years
    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.
  • Abram
    Abram over 5 years
    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.
  • Christopher K.
    Christopher K. over 5 years
    Works for me in Powerpoint 2016 on Windows 7 (exact MS Office version is 16.0.11029.20108)
  • Matěj Račinský
    Matěj Račinský about 5 years
    Wait, so I need to change my keyboard language if I want to have different proofing language? That's stupid.
  • Marcus Mangelsdorf
    Marcus Mangelsdorf about 5 years
    Perfect! Only improvement I could think of is changing the language for slide notes sections, too :)
  • Piedone
    Piedone over 4 years
    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.
  • Kai
    Kai almost 4 years
    Does not work for me as soon as I select multiple slides or even multiple elements on a slide I'm not able to select the language anymore. Maybe due to a very broken master slide, I don't know
  • Zordid
    Zordid over 3 years
    It's absolutely CRAZY that this shit piece of software will not let me once and for ever switch the language used in a presentation deck for good. Yes, you can select all and change it - but every new slide again is presented with the wrong language set...
  • Foad
    Foad over 3 years
    Thanks a lot for this brilliant solution. If I want the US English, can I just change msoLanguageIDEnglishUK to msoLanguageIDEnglishUS?
  • Foad
    Foad over 3 years
    one other issue I just saw is that it apparently doesn't change the language of the text inside tables.
  • Wolfgang Fahl
    Wolfgang Fahl over 3 years
    really - this didn't make it into Powerpoint itself and is only available for windows?
  • Piedone
    Piedone over 3 years
    As of the latest Office (Version 2011, part of Microsoft 365) the Outline trick doesn't seem to work at all.
  • Mikael Svenson
    Mikael Svenson over 3 years
    I know.. and the add-in model using javascript don't support iterating over object setting the language :(
  • Jérôme MEVEL
    Jérôme MEVEL over 3 years
    Nearly 2021 and the issue described by @Endrju still remains. I hate office
  • Roel Vermeulen
    Roel Vermeulen over 3 years
    If you find that this still doesn't work, create a new text box. Then change the language to another language, and then back to the one you desire. This worked for me. I had ENG (English) selected, but it was still creating text boxes in ES (Spanish). Then I changed to ES again, typed some text, and then changed back to ENG. Only now were the new text boxes in the desired language. Simply changing back and forth between languages might do the trick if it's still not working as specified here.
  • Nadjib Mami
    Nadjib Mami over 3 years
    For those new to Macros (on PowerPoint), help yourself: ionos.com/digitalguide/online-marketing/online-sales/…
  • Endrju
    Endrju over 3 years
    @JérômeMEVEL annoying, isn't it? Especially that development of this function doesn't seem to be a rocket science... Cheers!
  • Daniel Perez
    Daniel Perez about 3 years
    It doesn't work on 365 v2008 build 13127.21064. Powerpoint always detect languages even if they are not in the list of language preferences. At the moment i have to go to every text box, select all, and set the "proofing language" to the desired and default. Powerpoint is a really unprofessional software
  • bers
    bers almost 3 years
    @MatějRačinský no, you need to change the input language, not your keyboard layout. Windows is smart enough to distinguish between the two, so you can enter Spanish text with a French keyboard layout, and PowerPoint will check Spanish spelling. That is actually quite smart. To configure, in Windows 10 21H1, go to Language settings. You configure a list of Preferred languages at the bottom, and for each one, you can choose a (potentially different) keyboard layout. The language bar then allows you to switch between languages as well as betwen layouts independently.
  • markussvensson
    markussvensson almost 3 years
    The compile error above is because the LanguageID property was not included in the TextFrame object in later PowerPoint versions. Use TextFrame2 instead of TextFrame...