Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 図形の結合を行うPowerPointマクロ

対象:PowerPoint2013

「マクロオートシェイプの円の重なりをなくす」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

この検索だけでは、どのアプリケーションのマクロを探しているのか(ExcelマクロなのかWordマクロなのか)わかりませんが、PowerPoint 2013に存在している[図形の結合]コマンドを使うと、

図形の結合を行うPowerPointマクロ

オートシェイプ(図形)の重なりをなくすことができますので、そんなVBA(Visual Basic for Applications)のコードをここではご紹介しておきます。

[スポンサードリンク]

型抜き/合成を行うサンプルマクロ

「オートシェイプの円の重なりをなくす」ということは、[図形の結合]を利用する場合[型抜き/合成]を行うということでしょう。

Sub 図形の結合_型抜き合成()
 On Error GoTo ERR_HNDL
 ActiveWindow.Selection.ShapeRange. _
  MergeShapes msoMergeCombine
 Exit Sub

ERR_HNDL:
 MsgBox "複数の図形を選択してから実行してください。"
End Sub

図形の結合を行うPowerPointマクロ

例えば、上図の状態から上記のマクロを実行すると、下図のような[型抜き/合成]が行われます。

図形の結合を行うPowerPointマクロ

「円の重なりをなくす」ことができたわけです。

ShapeRangeオブジェクトのMergeShapesメソッドで、引数にmsoMergeCombineを指定すると[型抜き/合成]が行われるのです。

さまざまな結合マクロのサンプル

その他の結合コマンドを使ったマクロをまとめてご紹介しておきます。

Sub 図形の結合_接合()
 ActiveWindow.Selection.ShapeRange. _
  MergeShapes msoMergeUnion
End Sub

Sub 図形の結合_切り出し()
 ActiveWindow.Selection.ShapeRange. _
  MergeShapes msoMergeFragment
End Sub

Sub 図形の結合_重なり抽出()
 ActiveWindow.Selection.ShapeRange. _
  MergeShapes msoMergeIntersect
End Sub

Sub 図形の結合_単純型抜き()
 ActiveWindow.Selection.ShapeRange _
  .MergeShapes msoMergeSubtract
End Sub

複数の図形を選択して、

図形の結合を行うPowerPointマクロ

上記のマクロを実行してみてください。

MergeShapesメソッドの引数によって、どう結合されるか変化します。

msoMergeUnionの場合は、選択されていた図形が一体化する[接合]

図形の結合を行うPowerPointマクロ

msoMergeFragmentの場合、重なった部分でバラバラになる[切り出し]

図形の結合を行うPowerPointマクロ

msoMergeIntersectの場合、図形の重なり部分だけが残る[重なり抽出]

図形の結合を行うPowerPointマクロ

msoMergeSubtractの場合、上にあった図形で下の図形を切り取る[単純型抜き]

図形の結合を行うPowerPointマクロ

がそれぞれ行われます。

ちなみに、図形の結合コマンドは、PowerPoint 2010でも隠しコマンドとして存在していますが、PowerPoint 2010で上記のマクロを実行しようとしてもエラーとなり、実行することはできません。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 図形の結合を行うPowerPointマクロ

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

検索


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

.