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

指定した形状の図形だけ選択するPowerPointマクロ

動作検証バージョン:Windows版PowerPoint(バージョン1809 ビルド10827.20150)

「powerpoint vba 楕円だけを選択する」
という検索キーワードでのアクセスに気が付きました。

PowerPointでたくさんの図形を使って、何らかの図を作成していると、特定の形状の図形だけを選択したいという状況がありますから、とても共感できる検索です。

いつものように、参考になりそうなサンプルマクロをご紹介しておきます。

[スポンサードリンク]

楕円形だけを選択するサンプルマクロ

以下のSubプロシージャを実効すると、アクティブスライドの楕円形だけが選択されます。

Sub アクティブスライドで指定した形状の図形だけ選択する()
On Error GoTo ErrHandl

 Const TYP = msoShapeOval 'As MsoAutoShapeType

 With ActiveWindow.Selection
  If .Type = ppSelectionShapes Then .Unselect ' スライド選択状態にする
  If .Type = ppSelectionText Then .Unselect ' スライド選択状態にする

  Dim shp As Shape
  For Each shp In .SlideRange.Shapes
   If shp.AutoShapeType = TYP Then
    shp.Select Replace:=msoFalse
   End If
  Next shp
 End With

Exit Sub
ErrHandl:
 Select Case Err.Number
  Case 999, -2147467259, -2147188160
   ' -2147467259 : 複数スライドが選択されているとき
   ' -2147188160 : スライドが選択されていない、標準モードでない
   MsgBox "標準表示モードで、スライドを1枚だけ選択してから実行してください。"
  Case Else
   MsgBox Err.Number & vbCrLf & Err.Description
 End Select
 Err.Clear
End Sub

サンプルマクロの解説

実際に楕円を選択しているのは、
  Dim shp As Shape
  For Each shp In .SlideRange.Shapes
   If shp.AutoShapeType = msoShapeOval Then
    shp.Select Replace:=msoFalse
   End If
  Next shp
の部分です。

アクティブスライド上の図形に対してFor Each~Nextループを回して、
  For Each shp In .SlideRange.Shapes

定数TYPで指定されている形状だったときに、
   If shp.AutoShapeType = TYP Then

Shape.Selectメソッドの引数ReplaceにmsoFalseを指定することで、既に選択されている図形に追加する形で選択しています。
    shp.Select Replace:=msoFalse

条件を指定している、
   Const TYP = msoShapeOval
   If shp.AutoShapeType = TYP Then
定数を変更すれば、もちろん他の図形にも対応できます。

エラーになる可能性がいくつか考えられるので、
 On Error GoTo ErrHandl
と、ラベルErrHandl内で、エラー処理するようにしています。

2018-11-02 08:57

[スポンサードリンク]

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

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

検索


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

.