あちこちからコピペをしながら、PowerPointでプレゼン資料を作っていると、テキストボックス内の改行を、一気に削除したいと感じることがあります。
そんな要望にお応えするマクロを作ってみました。
プレゼン資料全体の改行を削除したいのか、1枚のスライド上の改行を削除したいのかなど、どのレベルで改行を削除したいのかは、さまざまです。
ここでは、選択されているテキストボックス・図形・プレースホルダの改行を削除するマクロを、ご紹介します。
Sub 選択されているテキストボックスの改行を削除する()
Dim txt As String
On Error GoTo ERR_HNDL
With ActiveWindow.Selection
'テキスト編集モードの場合にはシェイプを選択
If .Type = ppSelectionText Then .ShapeRange.Select
If .ShapeRange.HasTextFrame Then
txt = .TextRange.Text
txt = Replace(txt, vbCr, "")
txt = Replace(txt, vbVerticalTab, "")
.TextRange.Text = txt
End If
End With
Exit Sub
ERR_HNDL:
MsgBox "改行を削除したいテキストボックスや図形を1つだけ選択してから実行してください。"
End Subメインの処理は、
txt = .TextRange.Text
txt = Replace(txt, vbCr, "")
txt = Replace(txt, vbVerticalTab, "")
.TextRange.Text = txt
の部分です。
文字列を変数txtに格納してから、
txt = .TextRange.Text
[Enter]キーによる改行を削除して、
txt = Replace(txt, vbCr, "")
[Shift]+[Enter]による改行を削除して、
txt = Replace(txt, vbVerticalTab, "")
文字列として代入しなおしています。
.TextRange.Text = txt
選択対象によって、いろいろなエラーが発生する可能性があるので、
On Error GoTo ERR_HNDL
で、ERR_HNDLまで飛ばすようにして、メッセージを表示してからSubプロシージャを抜けています。
MsgBox "改行を削除したいテキストボックスや図形を1つだけ選択してから実行してください。"
テキストボックス・図形・プレースホルダ内にカーソルのあるテキスト編集モードの場合については、エラーで抜けるのはさすがに不親切なので、その図形を選択する処理を入れています。
If .Type = ppSelectionText Then .ShapeRange.Select
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » テキストボックス内の改行を削除するPowerPointマクロ