こんにちは、Ryoです。
図はExcelでも扱うことがとても多いですが、その図や図形などをユーザーに対して「見やすさ」「わかりやすさ」という観点から考えた場合に、視覚効果を有効に活用することが効果的なことも多いです。その視覚効果の主なものとして光彩/ぼかし/反射の設定や解除方法などについて書いていきます。
1.光彩の設定/解除
◆サンプル動作
サンプルとしてSheet2に四角形や三角形の図を配置しており、三角形には図の名前「Sample△」としていますので、これらの図形に光彩(色:紫)を設定します。

それぞれの図形に光彩設定後は以下のようになります。

◆サンプルコード
Sub sample1()
'**図に光彩設定を行う**
'Sheet2の1番目の図に光彩設定
With Worksheets("Sheet2").Shapes(1).Glow
'光彩サイズ(半径)を12ポイント設定
.Radius = 12
'色は紫設定
.Color.RGB = RGB(255, 51, 255)
End With
End Sub
このサンプルコードは四角形の図に光彩設定していますが、扱う際はGlowプロパティを利用して設定します。
構文:オブジェクト.Glow
光彩のサイズ(半径)はRadiusプロパティ、色はColorプロパティで設定します。
光彩設定を解除したい場合はRadiusプロパティに0を指定すればOKです。
Sub Sample2()
'**光彩設定の解除**
'解除したい図を指定し、Radiusプロパティに0を指定
Worksheets("Sheet2").Shapes(1).Glow.Radius = 0
End Sub
シート上に図が1つしかない場合はWorksheets(“Sheet2”).Shapes(1)のような指定でも問題ありませんが、複数あるような場合は図に名前を設定して、その名前を指定して処理を行うと良いかと思います。
Sub sample3()
'**図の名前を指定する場合**
'特定の図名を指定する場合はShapes("○○")のように指定
With Worksheets("Sheet2").Shapes("Sample△").Glow
.Radius = 12
.Color.RGB = RGB(255, 51, 255)
End With
End Sub
2.ぼかしの設定/解除
◆サンプル動作
上で使用した四角形の図に対し、以下のようにぼかし設定を行います。

◆サンプルコード
Sub Sample4()
'**ぼかし設定を行う場合**
'対象の図を指定し、引数Typeにぼかし効果を設定
Worksheets("Sheet2").Shapes(1).SoftEdge. _
Type = msoSoftEdgeType4
'引数Typeへの指定
'Type1から6にかけてぼかし効果が強くなる
'msoSoftEdgeType1
'msoSoftEdgeType2
'msoSoftEdgeType3
'msoSoftEdgeType4
'msoSoftEdgeType5
'msoSoftEdgeType6
'ぼかし効果を解除したい場合に指定
'msoSoftEdgeTypeNone、または0
End Sub
ぼかしを設定するにはSoftEdgeプロパティを使用します。
構文:オブジェクト.SoftEdge
サンプルコード内のコメントに記載の通り、ぼかし強度は6段階あり引数Typeに指定します。
また、解除したい場合は引数TypeにmsoSoftEdgeTypeNone、または「0」を指定すればOKです。
Sub Sample5()
'**ぼかし設定の解除**
'解除したい図形を指定し、引数Typeへ0
'またはmsoSoftEdgeTypeNoneを指定
Worksheets("Sheet2").Shapes(1).SoftEdge.Type = 0
End Sub
3.反射の設定/解除
◆サンプル動作
これまでのサンプル同様、四角形の図に反射の設定を行います。

◆サンプルコード
Sub Sample6()
'**図に反射を設定する**
'対象の図を指定し、引数Typeに反射効果を設定
Worksheets("Sheet2").Shapes(1).Reflection. _
Type = msoReflectionType5
'引数Typeへの指定
'msoReflectionType1 : 反射(弱)オフセットなし
'msoReflectionType2 : 反射(中)オフセットなし
'msoReflectionType3 : 反射(強)オフセットなし
'msoReflectionType4 : 反射(弱)4ptオフセット
'msoReflectionType5 : 反射(中)4ptオフセット
'msoReflectionType6 : 反射(強)4ptオフセット
'msoReflectionType7 : 反射(弱)8ptオフセット
'msoReflectionType8 : 反射(中)8ptオフセット
'msoReflectionType9 : 反射(強)8ptオフセット
'反射効果を解除したい場合はmsoReflectionTypeNoneを指定
End Sub
反射の設定を行うにはReflectionプロパティを利用します。
構文:オブジェクト.Reflection
引数Typeに指定する値はサンプルコード内のコメントに記載の通りです。
反射設定をクリアしたい場合は引数TypeにmsoReflectionTypeNoneを指定します。
Sub Sample7()
'**反射効果の解除**
'解除したい図形を指定し、引数Typeへ0
'またはmsoReflectionTypeNoneを指定
Worksheets("Sheet2").Shapes(1).Reflection. _
Type = msoReflectionTypeNone
End Sub
4.まとめ
このような視覚効果は表現する上ではとても有効なのですが、凝りすぎると逆効果なので注意が必要です。
処理自体は特に難しいこともありませんので、VBAでこのような処理も可能であるということを知っておくと今後何かと役に立つかと思いますので、機会があれば活用をご検討くださいませ。
以上、図に光彩/ぼかし/反射を設定する方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo

