Stron w wątku: < [1 2] | Set language in entire PPT presentation Autor wątku: Antonín Otáhal
| including the notes page | Mar 3, 2010 |
Antonín thanks for an excellent bit of code. Works a treat. Did a quick check and found this entry. http://www.vbaexpress.com/kb/getarticle.php?kb_id=429 Which shows the notespage code. So add this line after the next k ActivePresentation.Slides(j).NotesPage. _ Shapes.Placeholders(2).TextFrame.TextRange... See more Antonín thanks for an excellent bit of code. Works a treat. Did a quick check and found this entry. http://www.vbaexpress.com/kb/getarticle.php?kb_id=429 Which shows the notespage code. So add this line after the next k ActivePresentation.Slides(j).NotesPage. _ Shapes.Placeholders(2).TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUK
[Edited at 2010-03-03 14:08 GMT] ▲ Collapse | | | Andrew Alix USA Local time: 12:53 norweski > angielski + ... Other code to change language | Aug 6, 2010 |
Appreciated your code Antonin. You might appreciate the following code. When you type it in, as soon as you type the "." you'll notice that VBA suggests the next command. When you type the "=" for the language selection, VBA will present a menu that gives you the choice of all the languages available, starting with "msoLanguageID" and ending with the language of your choice. If you don't get the menu press "Control" plus the "j" key and it will come up Code is as follows: ... See more Appreciated your code Antonin. You might appreciate the following code. When you type it in, as soon as you type the "." you'll notice that VBA suggests the next command. When you type the "=" for the language selection, VBA will present a menu that gives you the choice of all the languages available, starting with "msoLanguageID" and ending with the language of your choice. If you don't get the menu press "Control" plus the "j" key and it will come up Code is as follows: Sub ChangeLanguage() Dim sld As Slide, shp As Shape For Each sld In ActivePresentation.Slides For Each shp In sld.Shapes If shp.HasTextFrame Then shp.TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUK End If Next shp sld.NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUK Next sld End Sub Not sure about the placeholders code line after "Next shp" though I think it works.
[Edited at 2010-08-06 13:42 GMT]
[Edited at 2010-08-06 13:43 GMT] ▲ Collapse | | | Antonín Otáhal Local time: 19:53 Członek ProZ.com od 2005 angielski > czeski + ... NOWY TEMAT Nicer code, the same outcome | Aug 6, 2010 |
I do know I tend to old-timer type of code. Yours is more elegant. Thanks. Antonin | | | Grey Drane (X) USA Local time: 13:53 włoski > angielski Changing language w/ a macro in PowerPoint, but not PP2011 Mac. Grr! #xl8 | Nov 21, 2012 |
Unfortunately, none of this works in PowerPoint 2011 for Mac because VBA there doesn't support the .LanguageID element for some mysterious reason. Maybe this same sort of thing can be done in OpenOffice??? Anyone know? Cheers, Grey | |
|
|
wotswot Francja Local time: 19:53 Członek ProZ.com od 2011 francuski > angielski Yet more code | Nov 21, 2012 |
This works in Office 2010 (Windows!) Just call ChangeLangOfAllText with the relevant Language ID Private Function ChangeLangOfAllText(ByVal LangID As Long) Dim MySlide As Slide Dim MyShape As Shape Dim MyD As Design Dim MyHeaderFooter As HeaderFooter Dim i, nbs As Integer ''''' First deal with the master slides For Each MyD In ActivePresentation.Designs For Each MyShape In MyD.SlideMaster.Shapes ProcessShapes My... See more This works in Office 2010 (Windows!) Just call ChangeLangOfAllText with the relevant Language ID Private Function ChangeLangOfAllText(ByVal LangID As Long) Dim MySlide As Slide Dim MyShape As Shape Dim MyD As Design Dim MyHeaderFooter As HeaderFooter Dim i, nbs As Integer ''''' First deal with the master slides For Each MyD In ActivePresentation.Designs For Each MyShape In MyD.SlideMaster.Shapes ProcessShapes MyShape, msoLanguageIDEnglishUK Next MyShape Next MyD ''''' Now deal with the slides For Each MySlide In ActivePresentation.Slides For Each MyShape In MySlide.Shapes ProcessShapes MyShape, LangID Next MyShape ''''' Now deal with the Notes (commentaires) For Each MyShape In MySlide.NotesPage.Shapes ProcessShapes MyShape, LangID Next MyShape ''''' Now deal with the master ' doesn't appear to work, have to try something else For Each MyShape In MySlide.Master.Shapes ProcessShapes MyShape, LangID Next MyShape Next MySlide End Function Private Function ProcessShapes(MyShape As Shape, ByVal LangID As Long) Dim i As Integer If ((MyShape.Type = msoGroup) Or (MyShape.Type = msoTable)) Then On Error Resume Next For i = 1 To MyShape.GroupItems.Count ''' The trick is to recurse! ProcessShapes MyShape.GroupItems.item(i), LangID Next i Else ChangeLang MyShape, LangID End If End Function ▲ Collapse | | | Set spell check language in PPT | Mar 20, 2013 |
Hi The macro was missing the variable definition. Here's the corrected code for both English an Brazilian Porltuguese Sub LangInFrames_USENG() 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 If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then ActivePresentation.Slides(j).Shapes(k).TextFrame.Te... See more Hi The macro was missing the variable definition. Here's the corrected code for both English an Brazilian Porltuguese Sub LangInFrames_USENG() 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 If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then ActivePresentation.Slides(j).Shapes(k).TextFrame.TextRange _ .LanguageID = msoLanguageIDEnglishUS '----------- for a different language, modify the msoLangauge code in the line above End If Next k Next j End Sub Sub LangInFrames_BPR() 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 If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then ActivePresentation.Slides(j).Shapes(k).TextFrame.TextRange _ .LanguageID = msoLanguageIDBrazilianPortuguese '----------- for a different language, modify the msoLangauge code in the line above End If Next k Next j End Sub Other language codes in: http://msdn.microsoft.com/en-us/library/office/ff746734.aspx My retribution for this neat and simple code. ▲ Collapse | | | Solution for PPT 2011? | Jul 24, 2013 |
I am also having trouble getting the code to work for Mac Powerpoint 2011. Any suggestions on how to get this to work would be greatly appreciated! I have tried 2 different codes I have found that seem to address this problem, and both return errors. For the following code, I receive an error message that says the "erreur de compilation: variable non définie". Public Sub ChangeSpellCheckingLanguage() Dim j As Integer, k As Integer, scount As Integer, fcount ... See more I am also having trouble getting the code to work for Mac Powerpoint 2011. Any suggestions on how to get this to work would be greatly appreciated! I have tried 2 different codes I have found that seem to address this problem, and both return errors. For the following code, I receive an error message that says the "erreur de compilation: variable non définie". Public Sub ChangeSpellCheckingLanguage() Dim j As Integer, k As Integer, scount As Integer, fcount 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 = msoLanguageIDFrench End If Next k Next j End Sub For the following code (from Antonin in this thread), I receive an error message that says "erreur de compilation: member de méthode ou de données introuvable" Sub LangInFrames() 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 = msoLanguageIDFrench End If Next k Next j End Sub Thanks! Grey Drane wrote: Unfortunately, none of this works in PowerPoint 2011 for Mac because VBA there doesn't support the .LanguageID element for some mysterious reason. Maybe this same sort of thing can be done in OpenOffice??? Anyone know? Cheers, Grey ▲ Collapse | | | Daniel Grau Argentyna Członek ProZ.com od 2008 angielski > hiszpański | Stron w wątku: < [1 2] | To report site rules violations or get help, contact a site moderator: You can also contact site staff by submitting a support request » Set language in entire PPT presentation Protemos translation business management system | Create your account in minutes, and start working! 3-month trial for agencies, and free for freelancers!
The system lets you keep client/vendor database, with contacts and rates, manage projects and assign jobs to vendors, issue invoices, track payments, store and manage project files, generate business reports on turnover profit per client/manager etc.
More info » |
| TM-Town | Manage your TMs and Terms ... and boost your translation business
Are you ready for something fresh in the industry? TM-Town is a unique new site for you -- the freelance translator -- to store, manage and share translation memories (TMs) and glossaries...and potentially meet new clients on the basis of your prior work.
More info » |
|
| | | | X Sign in to your ProZ.com account... | | | | | |