Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » テキストボックス内の改行を削除するPowerPointマクロ

テキストボックス内の改行を削除するPowerPointマクロ

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

あちこちからコピペをしながら、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

関連語句
VBA, Visual Basic for Applications
[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » テキストボックス内の改行を削除するPowerPointマクロ

「TextFrame・TextRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.