「パワーポイント マクロ アクティブスライド上のオートシェイプの選択」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。
アクティブなスライド上に存在する、オートシェイプを選択するPowerPointマクロを探している検索です。
プレースホルダなども含めた、全Shapeを選択するのならば、ShapesコレクションオブジェクトのSelectAllメソッドを使った、
ActiveWindow.Selection.SlideRange.Shapes.SelectAll
という1行だけでOKです。
おそらくそうではなくて、いわゆるオートシェイプ(図形)だけを選択したいのではないかと想像しています。
オートシェイプだけを選択するサンプルマクロ
以下のようなマクロで、アクティブスライド上の、オートシェイプ(図形)だけを、すべて選択することができます。
Dim shp As Shape With ActiveWindow.Selection
.Unselect
For Each shp In .SlideRange.Shapes
If _
shp.Type = msoAutoShape Or _
shp.Type = msoLine Or _
shp.Type = msoGroup Then
shp.Select Replace:=msoFalse
End If
Next shp
End With ' ActiveWindow.Selection
End Sub
サンプルマクロの解説
図形だけを選択するために、まず、現在の選択状態を解除します。
With ActiveWindow.Selection
.Unselect
その後、アクティブなスライド上の全Shapeに対しループを回して、
For Each shp In .SlideRange.Shapes
そのTypeが、msoAutoShape(オートシェイプ)か、msoLine(線)か、msoGroup(グループ化図形)ならば、
If _
shp.Type = msoAutoShape Or _
shp.Type = msoLine Or _
shp.Type = msoGroup Then
選択を行っています。
shp.Select Replace:=False
ShapeオブジェクトのSelectメソッドの引数・ReplaceにFalseを指定することで、既に選択されているShapeの選択を解除しないで、追加で選択しています。
If文の条件、
If _
shp.Type = msoAutoShape Or _
shp.Type = msoLine Or _
shp.Type = msoGroup Then
が、ポイントです。
ここでは、オートシェイプと、線と、グループ化されたシェイプを選択するようにしていますが、もしも、テキストボックスも選択したいのなら、
shp.Type = msoTextBox
という条件もOrで追加して
If _
shp.Type = msoAutoShape Or _
shp.Type = msoTextBox Or _
shp.Type = msoLine Or _
shp.Type = msoGroup Then
としてください。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » オートシェイプ・図形だけをすべて選択するPowerPointマクロ