If ActivePresentation.Slides(j).Shapes(k).Type = msoGroup Then ‘change all text in boxes, smart art etc. An improved version:ĭim j, k, m, scount, fcount, gcount As Integer This doesn’t catch text in boxes, smart art etc.
On >16.9, though, the following code should work ( TextFrame is replaced by TextFrame2 , as suggested here by John SR Wilson): Sub SetLangUS()ĪctivePresentation.Slides(j).Shapes(k).TextFrame2 _ĪctivePresentation.Slides(j).NotesPage.Shapes(k).TextFrame2 _ In earlier versions, Microsoft just thought interesting not to include the LanguageID property to the TextFrame object, which basically breaks the code. If you are on macOS, only the basic workaround and the outline solution will work for you, unless you are using PowerPoint more recent than version 16.9.
The full list of available language ID’s is available here:
TextRange.LanguageID = msoLanguageIDSpanish TextRange.LanguageID = msoLanguageIDGerman TextRange.LanguageID = msoLanguageIDFrench In these cases, you should change LanguageID on line 9 and 16 as follows : You can change the whole presentation to French, to German or to any other language taken into account by Microsoft spelling. The script above works also for any other language.
You can save this code for later use in a file with. And run it with the ‘play’ button:Īll text boxes have been set to English/US. Insert a new module by right-clicking on ‘VBAProject’ in the left navigation pane: What should you do with this? Click the Visual Basic button on the ‘Developer’ tab: If ActivePresentation.Slides(j).NotesPage.Shapes(k).HasTextFrame ThenĪctivePresentation.Slides(j).NotesPage.Shapes(k).TextFrame _ TextRange.LanguageID = msoLanguageIDEnglishUSįcount = ActivePresentation.Slides(j). If ActivePresentation.Slides(j).Shapes(k).HasTextFrame ThenĪctivePresentation.Slides(j).Shapes(k).TextFrame _ To achieve also this result, use this macro, provided on Chocotooth’s blog: Sub SetLangUS()įcount = ActivePresentation.Slides(j).Shapes.Count The outline solution only changes the language of the slides, leaving the notes (your presentation comments) untouched. With Visual Basic: change also the language of the notes In the outline pane, select everything by clicking Ctr+A, then, in the Review ribbon, select “Language”, and select the desired language for all the selected text. One of the solutions, kindly transmitted to me by mail by a “Maps and Spaces” visitor named Mike, consists in workinng in “outline” mode (instead of the default “slides” mode showing slide thumbnails). Or even better, the language of a whole presentation. To stop this, you need to determine the language of a whole slide. Starting to write in English on a French slide, the auto-corrector will underline your spelling, perhaps even change it if you have ‘correct as you type’ active. However, this doesn’t solve the problem of an existing presentation you wish to translate. Simply click the language on the language bar on some one-language slide where this actually works, select a language, and press “by default”:Įvery new slide will systematically apply your default language to any new box. The basic roundabout consists in determining the “by default” language. On macOS, for PowerPoint prior to v 16, only the basic workaround and the outline solution will work for you.
In Windows 10 and PowerPoint 2016, after 7 years since the first publication of this blog entry, the problem remains unsolved by Microsoft and the following solutions still apply.
Even a mix between English/US and English/UK disables the button. You notice, then, that it is not possible to select the main one: the language button (on the bottom bar) is simply not clickable if a multilanguage text is selected (in MS Word, this works, but not in MS PowerPoint). You easily end up with a mix of languages on a number of slides. Especially when you translate your slides. Changing the language of a whole presentation in MS PowerPoint can be tedious.