「powerpoint vba 自動サイズ調整」
という検索でアクセスがありました。
PowerPointでは個々の図形に文字列を入力したときに、自動的にサイズ調整を行うような設定を行うことができます。
例えば、PowerPoint 2013なら、下図のように[図形の書式設定]作業ウィンドウに、
PowerPoint 2010なら、下図のように[図形の書式設定]ダイアログに、
サイズの自動調整関連のオプションボタンが用意されています。
この自動サイズ調整に関するVBA(Visual Basic for Applications)のコードやマクロを探している検索です。
「powerpoint vba 自動サイズ調整」
というキーワードだけでは、この自動サイズ調整を、具体的どうしたいのかがわかりませんので、ここではすべての自動サイズ調整をOffにするマクロをご紹介しておきます。
アクティブスライドのShapeの自動サイズ調整をOffにするサンプルマクロ
まずは、アクティブなスライド上のShapeの自動サイズ調整をするマクロです。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にするには、以下のようなマクロです。
Dim sld As Slide
Dim shp As Shape
Dim msg As String
msg = "すべてのスライドの自動サイズ調整をOffにしますか?"
If MsgBox(msg, vbYesNo) = vbNo Then Exit Sub
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マクロ