관련 토론 에서 설명한 트릭을 시도했지만 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
KazJaw가 정확합니다. 이론적으로 많은 작업을 수동으로 수행 할 수는 있지만 수반되는 노력은 놀랍습니다. 기성품 솔루션을 사용하고 있다면 pptools.com/languageselector 에 상업용 추가 기능이 있으며 일부 확률과 끝 (차트 등)을 얻지 못합니다.
—
Steve Rindsberg