Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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 Answers 5

up vote 10 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 power point easily, open the View tab and select the Outline view.

Now press

  • Ctrl-A to select all.
  • Tools > Language > Choose your language to set.

Likewise while you have everything selected you can change other things like fonts, colours etc. Although of course in many case this is better done by changing the slide master, a presentation that has had many editors may have lots of 'hard' formatting set which deviates from the underlying master and needs resetting to be consistent. You can also reset individual slides to the master style, but this may result in placeholders moving as well, which may be undesirable in some situations.

share|improve this answer
1  
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 at 14:52

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
1  
Only works for a single slide –  Helge Klein Oct 16 '13 at 8:12
2  
This works for basic slide layouts. It will not change the language for text inside text boxes or nested within other shapes. –  Duncan Nov 25 '13 at 9:53
    
Works on Office 2007 too. –  Alfredo Osorio Nov 12 at 19:03
    
Worked on Office Mac too. –  Jim McKeeth Nov 13 at 18:35

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 Nov 25 '13 at 9:52

The version of Duncan works well for everything but tables. I found another code which seems to also work with tables: http://stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-contains-text

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 can hold text objects.

Sub ChangeProofingLanguageToEnglish()
    Dim j, k As Integer
    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 Integer

    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

protected by Community May 25 at 22:07

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.