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 2013 アイコン一覧(H)

    ・Office 2013 アイコン一覧 NUM…

  2. Office関連

    「いちばんやさしいPowerPoint VBAの教本」レビュー

    「インストラクターのネタ帳」で有名な伊藤さんが執筆された書籍第二弾、「…

  3. Office関連

    [Word]隠し文字をクイックアクセスツールバーから設定する。

    Wordで、部分的に印刷したくない文字列がある場合には「隠し文字」がよ…

  4. Office関連

    「印刷の向き」の変更を検知するExcelマクロ

    MSDNフォーラムに「「印刷の向き」の「縦」「横」ボタンがクリックされ…

  5. アイコン一覧

    Office 365アイコン(imageMso)一覧(F)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  6. Office関連

    Faviconをダウンロードするマクロ

    WebサイトからFaviconを抜き出すAPIがあったので早速使ってみ…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

最近の記事

アーカイブ

PAGE TOP