Office関連

図形の結合を行うPowerPoint マクロ(ExecuteMsoメソッド編)

Excel MVPの伊藤さんのブログで、PowerPointの「図形の結合」に関する記事が公開されていました。

・図形の結合を行うPowerPointマクロ
http://www.relief.jp/itnote/archives/powerpoint-vba-merge-shapes.php
・PowerPoint 2010で図形の結合を行う
http://www.relief.jp/itnote/archives/powerpoint-2010-merge-shapes.php

PowerPoint 2013で追加された、ShapeRangeオブジェクトのMergeShapesメソッドを使ったマクロと、PowerPoint 2010での図形の結合方法が紹介されています。

これまでPowerPointで図形を結合したことが無く、このコマンドがあったことすら知らなかったので大変勉強になりました。

そしてふと思ったのが、

“PowerPoint 2010でもコマンドが用意されているのであれば、ExecuteMsoメソッドで呼び出せば良いんじゃないか?”

ということ。

・・・というわけで、早速コードを考えてみました。

Public Sub Sample()
'[図形の型抜き/合成]実行
  With Application.CommandBars
    If .GetEnabledMso("ShapesCombine") Then .ExecuteMso "ShapesCombine"
  End With
End Sub

図形の選択状態 = コマンドが実行できるかどうかの判定はGetEnabledMsoメソッドを使えば簡単に行えます。

また、下記のようにすれば、結合の種類をユーザー側で選択することもできます。

Public Sub Sample2()
  Dim ret As String
  
  ret = VBA.InputBox("結合の種類を1から4の番号で選択してください。" & vbCrLf & vbCrLf & _
                     "1:図形の接合" & vbCrLf & _
                     "2:図形の型抜き/合成" & vbCrLf & _
                     "3:図形の重なり抽出" & vbCrLf & _
                     "4:図形の単純型抜き", "図形の結合実行")
  If StrPtr(ret) = 0 Or Len(Trim(ret)) < 1 Then Exit Sub
  ret = StrConv(ret, vbNarrow)
  Select Case Val(ret)
    Case 1 To 4
    Case Else: Exit Sub
  End Select
  ExecuteCombineShapes ret
End Sub

Private Sub ExecuteCombineShapes(ByVal idx As Long)
'図形の結合実行
  Dim aryMso(1 To 4) As String
  
  aryMso(1) = "ShapesUnion"     '図形の接合
  aryMso(2) = "ShapesCombine"   '図形の型抜き/合成
  aryMso(3) = "ShapesIntersect" '図形の重なり抽出
  aryMso(4) = "ShapesSubtract"  '図形の単純型抜き
  
  With Application.CommandBars
    If .GetEnabledMso(aryMso(idx)) Then
      .ExecuteMso aryMso(idx)
    Else
      MsgBox "図形を複数選択した状態で実行してください。", vbExclamation + vbSystemModal
    End If
  End With
End Sub

図形の結合」、初めて使ってみましたが中々面白い機能です。

[Google Apps Script]郵便番号から住所を取得する自作関数と住所から地図画像のURLを取得する自作関数前のページ

[Google Apps Script]Webアプリケーションを作成する。次のページ

関連記事

  1. Office関連

    Data Explorerのフォーラム&ブログ

    前回の記事で紹介した「Data Explorer」ですが、すでにフォー…

  2. Office関連

    [Office 365 Solo]テクニカル サポートってどんなもの?

    前々回の記事に引き続いて、Office 365 Soloの疑問点第三弾…

  3. Office関連

    IEサポート終了でVBAマクロはどうなるの?(2)

    ※下記情報は2021年5月時点の情報で、今後状況が変わっていく可能性が…

  4. Office関連

    [VBA]自動的にフォントサイズを調整する疑似テキストボックス

    前回と同様、環境依存つながりでmougの給湯室に書いたコードを載せてお…

  5. Office関連

    「文書のスタイル」を設定するWordマクロ

    Wordのオプション画面 → 文章校正 → Word のスペル チェッ…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP