changing languages in Powerpoint slides

Hello there

First time writing in this forum. I’ve already got some very valuable hints for scripting in word, but here I need more substantial help.

I have 3 main VBA macros that I use profusely in Powerpoint: one that changes slide language, one that deletes all notes from slides, and the last one that sets notes text to “noproofing” (so that the spell checker ignores them). I had already got help to have them translated into VBA and now I am of course completely unable to convert them!

Does anyone know if there are applescript that already exist and that I can use, or point me towards a solution, or who feel like taking up the challenge?

Thank you so much for any help. Here below some details about what I am after.


For the first one, the VBA code changes all slides to English (but it would be good if I could do this only on previously selected slides):

Sub IntoEnglish()

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 = msoLanguageIDEnglishUK
End If
Next k
Next j
End Sub

For the second one, the VBA code deletes notes from all slides (this can be done for the whole file, no need to act on just selected slides)

Sub DeleteAllNotes()

Dim objSlide As Slide
Dim objShape As Shape

For Each objSlide In ActivePresentation.Slides
For Each objShape In objSlide.NotesPage.Shapes
If objShape.TextFrame.HasText Then
objShape.TextFrame.TextRange = “”
End If

End Sub

And finally, for the third macro, the VBA codes selects the note text (I have therefore to be in note view) and sets it to no spelling (again, here, it can do it over the whole file)

Sub NoProofing()

ActiveWindow.Selection.TextRange.LanguageID = msoLanguageIDNoProofing

End Sub

Humm… not much success for my query… I did realise one thing though, which is that the “no proofing” option doesn’t seem to be available on Office2008 (how many obstacles will they invent!!)

really, no one to give me even the beginning of a hint?

(btw I have been on the mactopia pages and read the mactech article, but I am not able to find the right commands or adapt them to my needs…)

Merci Jacques!

I’ll test this on Monday.

I was intrigued by the fact you said that there is no AS equivalent to the VBA code LanguageID. I searched a bit, and got on one of your previous solution on this forum, where you use language ID, BUT, that you were writing a scrip for Word. The differences between the 2 would therefore be so great that what works with Word doesn’t with Powerpoint? wow. That’s pretty disappointing.

In any case, again, thanks a bunch for your suggestion.



Can I ask you something else?

To avoid unnecessary mistakes, I’d like to force the presentation to be “saved as…” at the end of the script.

I found this, which works if I add it to your piece of programming:

set theOutputPath to (path to desktop folder as string) & "My Preso.ppt"
tell application "Microsoft PowerPoint"
   save active presentation in theOutputPath as save as presentation
end tell

But I would prefer either that the Save as dialogue box to come up or that the name of the presentation be reused with something like “no notes” added to it and saved in the same folder as the original one.

Is that complicated?

Many thanks


wonderful, works perfectly. Incredibly fast as well.

Listen, I have been trying to find ways around the no languageid command, including with automator, but I get stuck. I try to get it to “watch what I do”, but it just doesn’t cut it. So, I’d like to ask you one last thing.

Even if the language command is not available, is it at least possible to call a menu item? It could work something like the script taking me slide after slide, select all, and call up the language dialogue box. I’d then have to manually click (whichever language or check the box for no spell check), then when I’ve clicked, the script takes me straight to the next slide, selects all, etc.

And thanks again for your help