見出し画像

10.シェイプの仲間探し

前回・前々回はシェイプの並べ替えを紹介しました。シンプルに2つのシェイプ(図形)を扱うマクロでしたが、今回はシェイプが多数あるときに、どう効率的に操作するかです。たとえば、

画像1

というスライドの場合、箱だけを選択し、

画像3

塗り潰しの色を変えたい。あるいは、コネクターだけを選択し、

画像2

線の太さや色を変えたい。という時、マウスで一つ一つ選ぶのって、案外手間ですよね? そんな時に便利なコードがこちら

Sub 同色シェイプ選択()

  Dim shp As Shape
  Dim f_rgb As Long

With ActiveWindow.Selection

    ' 未選択もしくはスライド選択は対象外
    If .Type = ppSelectionNone Or .Type = ppSelectionSlides Then Exit Sub
    
    ' 選択シェイプの色を取得
    f_rgb = .ShapeRange.Fill.ForeColor.RGB

    ' スライドのシェイプで
    For Each shp In .SlideRange.Shapes
      If shp.Fill.ForeColor.RGB = f_rgb Then

    ' 選択置き換えせず=複数選択
        shp.Select Replace:=msoFalse
      End If
    Next shp
End With

End Sub

冒頭の図で、

画像4

Startの右側のコネクターを1つだけマウスで選択し、上記のマクロを実行すると同じ色のシェイプ、この場合は同色のコネクターのみが選択され、

画像5

あとはPowerPoint標準機能操作でコネクターの色や太さが手軽に変更できます。

今回のマクロを簡単に説明すると、

f_rgb = .ShapeRange.Fill.ForeColor.RGB

は、選択したシェイプに塗られた色を確認し(RGB=Red, Green, and  Blue、つまり三原色)、次にスライド内にある全てのシェイプを対象にそれぞれチェックし、

For Each shp In .SlideRange.Shapes
If shp.Fill.ForeColor.RGB = f_rgb Then

色が同じだったら、

shp.Select

選択状態にします。上記の例だと、

「たいしたことないよ。マウス操作なんて苦じゃ無いし」

という思われたら、こんな図の色を変えるとしたらどうでしょうか?

画像6

隠れたシェイプが多数あり、マウス操作ではほぼ無理です。えいや!と全選択して色を変えたら

画像11

ダサくなります。そんな時はピース1つだけ選択し、

画像7

マクロを実行

画像8

そして、色の変更

画像9

この手順を2回繰り返すと

画像10

1分も掛けずに色の変更が終わります。

さいごに

今回は選択したシェイプと同じ色のシェイプを選択するマクロを紹介しました。これだけでも、十分操作が楽になります。が、コードの条件がシンプルなので、複雑な図形パターンだと歯が立ちません。次回は応用編を紹介します。


この記事が気に入ったらサポートをしてみませんか?