「パワーポイント VBA グループ化する」
という検索キーワードでのアクセスに気が付きました。
図形のグループ化をPowerPoint VBAで行うには、どのようなコードを書けばいいのかを探していた方による検索です。
選択されている図形をグループ化するサンプルマクロ
グループ化したい図形を、どう指定したいのかがわかりませんので、ここでは選択されている図形をグループ化するSubプロシージャをご紹介しておきます。
On Error GoTo ErrHandl
With ActiveWindow.Selection
If .Type <> ppSelectionShapes Then Err.Raise 999
If .ShapeRange.Count = 1 Then Err.Raise 999
.ShapeRange.Group
End With
ErrHandl:
Select Case Err.Number
Case 999
MsgBox "グループ化したい図形を、複数選択してから実行してください。"
Case -2147024891
MsgBox "選択されている図形は、グループ化できません。"
Case Else
MsgBox Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
End Sub
サンプルマクロの解説
グループ化はShapeRange.Groupメソッドで
選択されている図形をグループ化するには、
With ActiveWindow.Selection
If .Type <> ppSelectionShapes Then Err.Raise 999
If .ShapeRange.Count = 1 Then Err.Raise 999
.ShapeRange.Group
部分の、
ActiveWindow.Selection.ShapeRange.Group
だけでOKです。
エラー処理
ただし、ShapeRangeコレクションのGroupメソッドは、エラーになるケースがいろいろあります。
図形が1個しか選択されていないときや、グループ化できない図形が選択されているときなどです。
このあたりをまとめておきたかったので、上記のSubプロシージャでは、
図形が選択されていないとき、
If .Type <> ppSelectionShapes Then Err.Raise 999
図形が1個しか選択されていないときには、
If .ShapeRange.Count = 1 Then Err.Raise 999
エラーを上げるようにして、以下の箇所でエラーメッセージを表示させています。
ErrHandl:
Select Case Err.Number
Case 999
MsgBox "グループ化したい図形を、複数選択してから実行してください。"
プレースホルダーなどグループ化できない図形が選択されていた場合は、実行時エラーが発生するので、
Case -2147024891
MsgBox "選択されている図形は、グループ化できません。"
とエラーメッセージを表示しています。
GroupメソッドはShapeRangeにだけ用意されている
上述のSubプロシージャで利用しているGroupメソッドは、ShapeRangeオブジェクトにだけ用意されています。
オブジェクトブラウザーで「group」を完全一致で検索すると、下図のとおりです。
ShapeRangeオブジェクトは、Shapeオブジェクトと同じプロパティ・メソッドが、かなり用意されていますけれど、単独の図形を表すShapeオブジェクトにはGroupメソッドは存在しません。
最終更新日時:2018-11-02 09:06
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 選択図形をグループ化するPowerPointマクロ