「テキストボックス 罫線 vba powerpoint」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
「罫線」と表現されていますが「枠線」のことでしょうか。
テキストボックスの枠線の書式設定を行うVBAマクロを2つご紹介しておきます。
アクティブスライドのテキストボックスの枠線を設定するサンプルマクロ
以下のようなマクロで、アクティブなスライドの、テキストボックスの枠線の書式を設定できます。
Dim sld As SlideRange
Dim shp As Shape
Set sld = ActiveWindow.Selection.SlideRange
For Each shp In sld.Shapes
If shp.Type = msoTextBox Then
With shp.Line
.Style = msoLineSingle
.DashStyle = msoLineSolid
.Weight = 1
.ForeColor.RGB = RGB(255, 0, 0)
End With
End If
Next shp
End Sub
ShapeオブジェクトのLineプロパティで取得できる、
LineFormatオブジェクトを利用すると、
図形の枠線を設定することができます。
プロパティ名(.Line)と、返されるオブジェクト名(LineFormat)が異なっているという点に注意が必要です。
アクティブスライドの全テキストボックスの枠線設定だけを行うのならば、
For Each shp In ActiveWindow.Selection.SlideRange.Shapes
でいいのですが、ここでは次にすべてのスライドに対して同様の処理をするSubプロシージャを見る関係で、あえて
Dim sld As SlideRange
Set sld = ActiveWindow.Selection.SlideRange
For Each shp In sld.Shapes
としています。
アクティブなプレゼンテーションの全テキストボックスの枠線を設定するサンプルマクロ
以下のようなマクロにすれば、アクティブなプレゼンテーションファイルの、全スライドの、全テキストボックスの書式を設定できます。
Dim sld As Slide
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.Type = msoTextBox Then
With shp.Line
.Style = msoLineSingle
.DashStyle = msoLineSolid
.Weight = 1
.ForeColor.RGB = RGB(255, 0, 0)
End With
End If
Next shp
Next sld
End Sub
全スライドに対するFor Each~Nextループの中に、
For Each sld In ActivePresentation.Slides
前述のアクティブスライドのテキストボックスの枠線を設定するマクロで行っている処理が入っています。
アクティブスライドのテキストボックスの枠線を設定するマクロは、
Set sld = ActiveWindow.Selection.SlideRange
というオブジェクト式を利用しているので、
オブジェクト変数・sldを「As SlideRange」で宣言しているのに対し、全スライドのテキストボックスの枠線を設定するマクロは、
For Each sld In ActivePresentation.Slides
と、Slidesコレクションオブジェクトの各Slideオブジェクトに対して処理するために、
オブジェクト変数・sldを「As Slide」で宣言している部分が、PowerPointのオブジェクトモデルをしっかりと理解できていない方には要注意かもしれません。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPoint VBAでテキストボックスの枠線を設定する