「powerpoint vba 楕円だけを選択する」
という検索キーワードでのアクセスに気が付きました。
PowerPointでたくさんの図形を使って、何らかの図を作成していると、特定の形状の図形だけを選択したいという状況がありますから、とても共感できる検索です。
いつものように、参考になりそうなサンプルマクロをご紹介しておきます。
楕円形だけを選択するサンプルマクロ
以下の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
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
- Newer:デスクトップアイコンの設定ダイアログの表示方法
- Older:ActiveChartでChartを取得できたか確認する
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 指定した形状の図形だけ選択するPowerPointマクロ