Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » オートシェイプ・図形だけをすべて選択するPowerPointマクロ

オートシェイプ・図形だけをすべて選択するPowerPointマクロ

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

「パワーポイント マクロ アクティブスライド上のオートシェイプの選択」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。

アクティブなスライド上に存在する、オートシェイプを選択するPowerPointマクロを探している検索です。

プレースホルダなども含めた、全Shapeを選択するのならば、ShapesコレクションオブジェクトのSelectAllメソッドを使った、
  ActiveWindow.Selection.SlideRange.Shapes.SelectAll
という1行だけでOKです。

おそらくそうではなくて、いわゆるオートシェイプ(図形)だけを選択したいのではないかと想像しています。

[スポンサードリンク]

オートシェイプだけを選択するサンプルマクロ

以下のようなマクロで、アクティブスライド上の、オートシェイプ(図形)だけを、すべて選択することができます。

Sub アクティブスライドのオートシェイプをすべて選択する()
 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
としてください。

関連語句
VBA, Visual Basic for Applications
[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » オートシェイプ・図形だけをすべて選択するPowerPointマクロ

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


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

.