Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » テキストボックスの余白を設定するPowerPointマクロ

テキストボックスの余白を設定するPowerPointマクロ

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

テキストボックスの余白を設定するPowerPointマクロ

「パワーポイント vba テキストボックス 内部の余白」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

PowerPointのテキストボックス内部の余白を取得・設定するマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

テキストボックス内部の余白を設定するサンプルマクロ

参考になりそうなサンプルマクロをご紹介しておきます。

Sub テキストボックス内部の余白を0にする()
 With ActiveWindow.Selection

  If .Type = ppSelectionNone _
  Or .Type = ppSelectionSlides Then
   MsgBox "余白を指定したい図形を選択してください。"
   Exit Sub
  End If

  With .ShapeRange.TextFrame
   .MarginLeft = 0
   .MarginRight = 0
   .MarginTop = 0
   .MarginBottom = 0
   .AutoSize = ppAutoSizeShapeToFitText
   .WordWrap = msoFalse
  End With '.ShapeRange.TextFrame

 End With 'ActiveWindow.Selection
End Sub

余白の設定を行っているのは、後半の
  With .ShapeRange.TextFrame
   .MarginLeft = 0
   .MarginRight = 0
   .MarginTop = 0
   .MarginBottom = 0
の部分です。

TextRameオブジェクトにMarginTop・MarginRight・MarginBottom・MarginLeftというプロパティが存在しています。

PowerPoint側からは、
2013なら
 [図形の書式設定]
  -[文字のオプション]
   -[テキストボックス]欄-
    [左余白][右余白][上余白][下余白]で
2010・2007・2003なら
 [図形の書式設定]ダイアログ
  -[テキストボックス]
   -[内部の余白]欄-
    [左][右][上][下]で
余白を設定できます。

2013では下図の、

テキストボックスの余白を設定するPowerPointマクロ

2010・2007では下図の、

テキストボックスの余白を設定するPowerPointマクロ

場所です。

これに該当するのが、MarginLeft・MarginRight・MarginTop・MarginBottomです。

この4つのプロパティに値を指定すれば、余白が指定された値になります。

テキストに合わせて図形のサイズを調整する・図形内でテキストを折り返す

但し、
  With .ShapeRange.TextFrame
   .MarginLeft = 0
   .MarginRight = 0
   .MarginTop = 0
   .MarginBottom = 0
  End With
というコードだけだと、実際にマクロを動かしたときに、図形・テキストボックスの見た目が変更にならないということもあります。

余白は確かに設定されたのに、図形・テキストボックスの大きさが変更になっていないので、余白が設定されていないかのように見えてしまう可能性があるのです。

そのため、MarginTop・MarginRight・MarginBottom・MarginLeftを指定したあとに、
   .AutoSize = ppAutoSizeShapeToFitText
   .WordWrap = msoFalse
というコードを入れています。

このうち、
   .AutoSize = ppAutoSizeShapeToFitText
は、PowerPoint側で操作するときの[テキストに合わせて図形のサイズを調整する]に該当します。

2013の場合は下図の、

テキストボックスの余白を設定するPowerPointマクロ

2010・2007の場合は下図の、

テキストボックスの余白を設定するPowerPointマクロ

オプションです。

テキストに合わせて図形のサイズを調整するオプションを設定する
   .AutoSize = ppAutoSizeShapeToFitText
に続く、
   .WordWrap = msoFalse
は、PowerPoint側からは[図形内でテキストを折り返す]チェックボックスをOffにする操作に該当します。

2013の場合は下図の、

テキストボックスの余白を設定するPowerPointマクロ

2010・2007の場合は下図の、

テキストボックスの余白を設定するPowerPointマクロ

チェックボックスです。

PowerPoint上の[テキストに合わせて図形のサイズを調整する][図形内でテキストを折り返す]、VBAのTextFrameオブジェクトのAutoSizeプロパティ・WordWrapプロパティが、具体的にどういう動きを示すのかは、是非ご自分の手を動かしてご確認ください。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » テキストボックスの余白を設定するPowerPointマクロ

「TextFrame・TextRange」の記事一覧

検索


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

.