Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » テキストボックスの自動サイズ調整をOffにするPowerPointマクロ

テキストボックスの自動サイズ調整をOffにするPowerPointマクロ

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

「powerpoint vba 自動サイズ調整」
という検索でアクセスがありました。

PowerPointでは個々の図形に文字列を入力したときに、自動的にサイズ調整を行うような設定を行うことができます。

例えば、PowerPoint 2013なら、下図のように[図形の書式設定]作業ウィンドウに、

テキストボックスの自動サイズ調整をOffにするパワポマクロ

PowerPoint 2010なら、下図のように[図形の書式設定]ダイアログに、

テキストボックスの自動サイズ調整をOffにするパワポマクロ

サイズの自動調整関連のオプションボタンが用意されています。

[スポンサードリンク]


この自動サイズ調整に関するVBA(Visual Basic for Applications)のコードやマクロを探している検索です。

「powerpoint vba 自動サイズ調整」
というキーワードだけでは、この自動サイズ調整を、具体的どうしたいのかがわかりませんので、ここではすべての自動サイズ調整をOffにするマクロをご紹介しておきます。

アクティブスライドのShapeの自動サイズ調整をOffにするサンプルマクロ

まずは、アクティブなスライド上のShapeの自動サイズ調整をするマクロです。
Sub アクティブスライドの自動サイズ調整をOffにする()
 Dim shp As Shape
 Dim msg As String
 
 msg = "アクティブなスライドの自動サイズ調整をOffにしますか?"
 If MsgBox(msg, vbYesNo) = vbNo Then Exit Sub
 
 With ActiveWindow.Selection.SlideRange
  For Each shp In .Shapes
   shp.TextFrame.AutoSize = ppAutoSizeNone
  Next shp
 End With
End Sub

上記のマクロを実行すると、
「アクティブなスライドの自動サイズ調整をOffにしますか?」
というメッセージが表示され、[はい]ボタンをクリックすると、アクティブスライド上のすべての図形の自動サイズ調整がOffになります。

アクティブなスライドの、
 With ActiveWindow.Selection.SlideRange

すべての図形に対してループを回して、
  For Each shp In .Shapes

Shapeオブジェクトの、TextFrameオブジェクトの、AutoSizeプロパティをppAutoSizeNoneに設定しています。
   shp.TextFrame.AutoSize = ppAutoSizeNone

TextFrameオブジェクトのAutoSizeプロパティには、
 ppAutoSizeMixed
 ppAutoSizeNone
 ppAutoSizeShapeToFitText
という定数を指定することができ、上記のマクロではppAutoSizeNoneを指定しています。

全スライドのShapeの自動サイズ調整をOffにするサンプルマクロ

すべてのスライドの、すべての図形の、自動サイズ調整をOffにするには、以下のようなマクロです。

Sub 全スライドの自動サイズ調整をOffにする()
 Dim sld As Slide
 Dim shp As Shape
 Dim msg As String

 msg = "すべてのスライドの自動サイズ調整をOffにしますか?"
 If MsgBox(msg, vbYesNo) = vbNo Then Exit Sub

 For Each sld In ActivePresentation.Slides
 With sld
  For Each shp In .Shapes
   shp.TextFrame.AutoSize = ppAutoSizeNone
  Next shp
 End With
 Next sld
End Sub

先の、アクティブなスライド上のShapeの自動サイズ調整をOffにするマクロより、ループが一階層深くなっています。

アクティブなプレゼンテーションの、全スライドに対してループを回し、
 For Each sld In ActivePresentation.Slides

各スライドの中で、全図形に対してループを回して、
 With sld
  For Each shp In .Shapes

Shapeオブジェクトの、TextFrameオブジェクトの、AutoSizeプロパティをppAutoSizeNoneに設定しています。
   shp.TextFrame.AutoSize = ppAutoSizeNone

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » テキストボックスの自動サイズ調整をOffにするPowerPointマクロ

「TextFrame・TextRange」の記事一覧

検索


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

.