As strange as it seems in a globalized society, MS PowerPoint developers haven’t considered necessary to allow their users to change the language of a whole presentation. This becomes especially annoying when you translate your slides. You easily end up with a mix of languages on a slide, and you’ll notice, then, that it is not possible to select the main one: the language button (on the bar below) is simply not clickable if a multilanguage text is selected (in MS Word, this works, but NOT in MS PowerPoint). Even a mix between English/US and English/UK disables the button.
The basic roundabout consists in determining the “by default” language. Simply click the language on the language bar on some one-language slide where this actually works, select a language, and press “by default”:
Every new slide will systematically apply your the default language to any new box.
However, this doesn’t solve the problem of an existing presentation you wish to translate. Starting to write in English on a French slide, the auto-corrector will underline your spelling, perhaps even chew it up altogether if you have ‘correct as you type’ active. If you are lucky, the language chooser button works. But even a simple mixture of french-fr and french-chmakes it impossible to use it.
Then, how do you determine the language of a whole slide? Or even (woaw) the language of a whole presentation?
Well, the only way to go around this is a macro (!) I’ve got from Chocotooth’s blog:
Sub SetLangUS() Dim scount, j, k, fcount scount = ActivePresentation.Slides.Count For j = 1 To scount fcount = ActivePresentation.Slides(j).Shapes.Count For k = 1 To fcount 'change all shapes: If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then ActivePresentation.Slides(j).Shapes(k).TextFrame _ .TextRange.LanguageID = msoLanguageIDEnglishUS End If Next k fcount = ActivePresentation.Slides(j).NotesPage.Shapes.Count For k = 1 To fcount 'change all shapes: If ActivePresentation.Slides(j).NotesPage.Shapes(k).HasTextFrame Then ActivePresentation.Slides(j).NotesPage.Shapes(k).TextFrame _ .TextRange.LanguageID = msoLanguageIDEnglishUS End If Next k Next j End Sub
What should you do with this? Click the Visual Basic button on the ‘Developer’ tab:
Insert a new module by right-clicking on ‘VBAProject’ in the left navigation pane:
This opens a new window. Paste the code into it. And run it with the ‘play’ button:
See? All text boxes have been set to English/US. You can save this code for later use in a file with .bas extension.
PS: Dear Microsoft, if you could offer a less tedious solution than this by simply integrating the language-switching feature in PowerPoint, many thanks in advance.




