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 that can hold text objects.
Sub ChangeProofingLanguageToEnglish()
Dim j As Long, k As IntegerLong
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 IntegerLong
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