Как изменить язык по умолчанию для всех слайдов в презентации 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 
2
Кажется, твой код - единственная хорошая идея. Я не могу найти какое-либо свойство или метод, который мог бы установить язык существующей презентации с эффектом для всего текста в документе. То, что я нахожу, скорее работает для новой презентации, к сожалению. Kazimierz Jawor 11 лет назад 0
KazJaw правильно. Хотя теоретически вы могли бы выполнять большую часть работы вручную, количество затрачиваемых усилий поразительно. Если вы ищете готовое решение, у меня есть коммерческая надстройка для этого по адресу http://www.pptools.com/languageselector/, и даже она не учитывает некоторые шансы и недостатки (диаграммы и тому подобное). Steve Rindsberg 11 лет назад 0

1 ответ на вопрос

1
sancho.s

Вы не можете сделать это без использования VBA. В ссылках ниже много кода VBA, например, вы уже используете рекурсию, которая необходима для навигации по группам. Другие более полные фрагменты кода также касаются слайд-мастеров, заметок и т. Д.

Изменить язык проверки орфографии в презентации PowerPoint

Как изменить язык всех слайдов Powerpoint одновременно?

https://stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-contains-text