PowerPointでテキストボックスの最後の文字が欠けるバグを回避するマクロ

最近のPowerPointでは修正されたかも知れないがOfficeXPあたりだとよく発生する不具合。
対策パッチはMSのサイトにあるのだが、プレゼンする端末にパッチを当てられない場合も多いため、手っ取り早いのはテキストの最後に空白を追加しておく方法だ。
これもスライドが100ページとかあると泣けるので一括で変換するマクロを書いたのが1年半前。
需要があるかも知れないので公開しておこう。
変換したいスライドをアクティブにした状態でAddSpaceMainを実行すればOKのはず。

Sub AddSpaceMain()
    Dim sli As Slide
    Dim shp As Shape
    Dim shp2 As Shape
    
    For Each sli In ActivePresentation.Slides
        For Each shp In sli.Shapes
            If shp.HasTextFrame Then
                AddSpaceToShape shp
            ElseIf shp.Type = msoGroup Then
                For Each shp2 In shp.GroupItems
                    If shp2.HasTextFrame Then AddSpaceToShape shp2
                Next
            End If
        Next
    Next
End Sub

Sub AddSpaceToShape(shp As Shape)
    Dim i As Long
    If Not shp.TextFrame.HasText Then Exit Sub
    With shp.TextFrame.TextRange.Characters
        If .Characters(.Count, 1) <> " " Then .InsertAfter " "
        For i = .Count To 1 Step -1
            If Asc(.Characters(i, 1)) = 13 And .Characters(i - 1, 1) <> " " Then .Characters(i, 0) = " "
        Next i
    End With
End Sub