10.シェイプの仲間探し
前回・前々回はシェイプの並べ替えを紹介しました。シンプルに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
冒頭の図で、
Startの右側のコネクターを1つだけマウスで選択し、上記のマクロを実行すると同じ色のシェイプ、この場合は同色のコネクターのみが選択され、
あとは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
選択状態にします。上記の例だと、
「たいしたことないよ。マウス操作なんて苦じゃ無いし」
という思われたら、こんな図の色を変えるとしたらどうでしょうか?
隠れたシェイプが多数あり、マウス操作ではほぼ無理です。えいや!と全選択して色を変えたら
ダサくなります。そんな時はピース1つだけ選択し、
マクロを実行
そして、色の変更
この手順を2回繰り返すと
1分も掛けずに色の変更が終わります。
さいごに
今回は選択したシェイプと同じ色のシェイプを選択するマクロを紹介しました。これだけでも、十分操作が楽になります。が、コードの条件がシンプルなので、複雑な図形パターンだと歯が立ちません。次回は応用編を紹介します。
この記事が気に入ったらサポートをしてみませんか?