Jawaban yang ada berfungsi untuk teks yang ada di garis besar. Sayangnya dalam kasus saya ini tidak mencakup sebagian besar teks, termasuk gambar, tabel, dll.
Makro ini memecahkan masalah bagi saya:
Sub ChangeProofingLanguageToEnglish()
Dim j, k, m, scount, fcount, gcount 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 = msoLanguageIDEnglishUS
End If
If ActivePresentation.Slides(j).Shapes(k).Type = msoGroup Then
gcount = ActivePresentation.Slides(j).Shapes(k).GroupItems.Count
For m = 1 To gcount
If ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m).HasTextFrame Then
ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m) _
.TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUS
End If
Next m
End If
Next k
Next j
End Sub
"MsoLanguageIDEnglishUS" yang digunakan dalam makro di atas dapat diganti dengan bahasa yang diinginkan. Daftar lengkap bahasa dapat ditemukan di artikel ini
(Kredit diberikan kepada Ganesh Kumar yang memposting makro asli di sini . Saya menambahkan dukungan untuk pengelompokan bentuk tingkat pertama. Untuk lebih meningkatkannya, makro dapat dibuat rekursif untuk mencari grup yang berisi grup lain, dll.)