Как изменить язык по умолчанию для всех слайдов в презентации PowerPoint?
2811
Axel Kemper
Я попробовал хитрость, объясненную в связанном обсуждении, но не смог изменить язык проверки для всех текстов на всех слайдах презентации PowerPoint 2007.
Может ли это быть особенностью PowerPoint 2007?
Следующий VBA "монстр" сделал свою работу, но я ищу более легкий путь, который не требует VBA. Есть идеи?
Option Explicit Private Sub btnGerman_Click() Call LanguageChange(msoLanguageIDGerman) End Sub Private Sub btnEnglish_Click() Call LanguageChange(msoLanguageIDEnglishUK) End Sub Public Sub LanguageChange(LanguageID As Integer) Dim sld As Slide Dim shp As Shape Dim cnt As Integer Dim cntAll As Integer On Error GoTo ErrHandler Me.btnEnglish.Enabled = False Me.btnGerman.Enabled = False cntAll = ActivePresentation.Slides.Count cnt = 0 For Each sld In ActivePresentation.Slides For Each shp In sld.Shapes If shp.HasTextFrame Then shp.TextFrame.TextRange.LanguageID = LanguageID Else ShapeLanguageChange shp, LanguageID End If Next cnt = cnt + 1 o cnt & " / " & cntAll Next Me.btnEnglish.Enabled = True Me.btnGerman.Enabled = True Exit Sub ErrHandler: MsgBox "Ooops! " & Err.Description, vbCritical, "Error!" Err.Clear Me.btnEnglish.Enabled = True Me.btnGerman.Enabled = True End Sub Private Sub o(s As String) Me.Label1.Caption = s DoEvents End Sub Private Sub ShapeLanguageChange(sh As Shape, LanguageID As Integer) Dim sha As Shape If sh.Type = msoGroup Then For Each sha In sh.GroupItems If sha.Type = msoGroup Then ShapeLanguageChange sha, LanguageID ElseIf sha.HasTextFrame Then sha.TextFrame.TextRange.LanguageID = LanguageID End If Next End If End Sub
Кажется, твой код - единственная хорошая идея. Я не могу найти какое-либо свойство или метод, который мог бы установить язык существующей презентации с эффектом для всего текста в документе. То, что я нахожу, скорее работает для новой презентации, к сожалению.
Kazimierz Jawor 11 лет назад
0
KazJaw правильно. Хотя теоретически вы могли бы выполнять большую часть работы вручную, количество затрачиваемых усилий поразительно. Если вы ищете готовое решение, у меня есть коммерческая надстройка для этого по адресу http://www.pptools.com/languageselector/, и даже она не учитывает некоторые шансы и недостатки (диаграммы и тому подобное).
Steve Rindsberg 11 лет назад
0
1 ответ на вопрос
1
sancho.s
Вы не можете сделать это без использования VBA. В ссылках ниже много кода VBA, например, вы уже используете рекурсию, которая необходима для навигации по группам. Другие более полные фрагменты кода также касаются слайд-мастеров, заметок и т. Д.