私は、1つのPowerPointドキュメント内のすべてのスライドの全文字間隔を一度に正規化するソリューションを考え出しています。私はすべての図形のためにそれを行うマクロを考え出したが、それはテーブルのテキストをスキップし続ける。。ただし、範囲にmsoTableを追加すると、スライドの処理が開始されますが、最初のテーブルにヒットすると、指定された値が範囲外であると主張する実行時エラーがすぐに返されます。VBA for Global PowerPointの文字間隔の正規化
何が悪いと思いますか?それが簡単な修正であることを確かめてください。
Sub SpacingNormalization()
On Error GoTo ErrMsg
Dim shape As shape
slideCount = ActivePresentation.Slides.Count
For i = 1 To slideCount
With ActivePresentation.Slides(i)
.Select
For Each shape In ActivePresentation.Slides(i).Shapes
If shape.Type = msoPlaceholder Or shape.Type = msoTextBox Or shape.Type = msoAutoShape Or shape.Type = msoTable Then
shape.Select
ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Font.Spacing = 0
End If
ErrMsg:
Next
End With
Next
MsgBox ("All segments have been normalized!")
End Sub
本当にありがとうございます。前もって感謝します!
こんにちはスティーブ、あなたのご入力いただきありがとうございます。スクリプトをテストしようとしましたが、機能していないようです。 PowerPointのVBAは、すべての図形(初期のスクリプトではすでに実行できる)の間隔を細かく修正しても、まだテーブルを修正することはありません。それは2番目のサブの呼び出しをスキップしているようです。エディタは別のサブとして表示し、別々に実行する方法はありません。 1つのサブに統合しようとしましたが失敗しました。私が(Case Is =で)登場した新しいものは動作しているようですが、残念ながら最初から書かなければなりませんでした。 – Ilia
私の悪い...編集されたバージョンを参照してください。 Call ProcessTable(oSh)をCall ProcessTable(oSh.Table)に変更しました。 –
覚えておくべきもう一つのことは、タイププレースホルダであるシェイプもテーブルである可能性があるということです。したがって、プレースホルダのPlaceholderFormatオブジェクトのContainedTypeプロパティをチェックするか、HasTableプロパティを使用します。 –