PowerPoint で空のテキスト ボックスを削除する

Sub RemoveEmptyTextBoxes()
    Dim SlideObj As Slide
    Dim ShapeObj As Shape
    Dim ShapeIndex As Integer
    For Each SlideObj In ActivePresentation.Slides
        For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1
            Set ShapeObj = SlideObj.Shapes(ShapeIndex)
            If ShapeObj.Type = msoTextBox Then
                If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then
                    ShapeObj.Delete
                End If
            End If
        Next ShapeIndex
    Next SlideObj
End Sub

このコードを実行すると、すべてのスライドに対して処理がループして実行され、テキストを含まないすべてのテキスト ボックスが削除されます。 カウント変数の値は、1 つずつ増えるのではなく減っていきます。コードでオブジェクトを 1 つ削除するたびにコレクションからオブジェクトが削除されるので、カウントが減ります

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました