関連するディスカッション で説明されているトリックを試しましたが、PowerPoint2007プレゼンテーションのすべてのスライドのすべてのテキストの校正言語を変更できませんでした。
これはPowerPoint2007の機能でしょうか?
次の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
VBAを使用せずにそれを行うことはできません。以下のリンクには、VBAコードがたくさんあります。すでに再帰を使用しています。これは、グループをナビゲートするために不可欠です。他のより完全なコードも、スライドマスター、メモなどを扱います。
PowerPointプレゼンテーションのスペルチェック言語を変更します