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