HOME > 即効テクニック > Excel VBA > 図形操作関連のテクニック > Shapeに影をつけるには−ShadowFormat

即効テクニック

図形操作関連のテクニック

Shapeに影をつけるには−ShadowFormat

(Excel 97/2000)

Shapeに影をつけるにはShapeのShadowプロパティーを使用してShadowFormatオブジェクトを取得し、各種プロパティーの設定により行います。


以下のサンプルではセル範囲(B2:G7)に青色の影付きShapeを作成します。
また、セル自体への効果であるかのような外見にするために、Shapeの塗りつぶし効果を非表示にしています。
Sub CreateShapeWithShadow()

Dim Sh As Shape
Dim Rng As Range
Dim L As Double, T As Double, W As Double, H As Double

'指定セル範囲にあわせてShapeの配置決め
Set Rng = ActiveSheet.Range("B2:G7")
L = Rng.Left: T = Rng.Top: W = Rng.Width: H = Rng.Height

'Shapeを作成
Set Sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
    L, T, W, H)

Sh.Fill.Visible = False 'Shapeの塗りつぶし効果を非表示

'ShadowFormatの取得
With Sh.Shadow
.OffsetX = 10 '水平方向
.OffsetY = -10 '垂直方向
.ForeColor.RGB = vbBlue '影の塗りつぶし
.Transparency = 0.5 '透明度
.Obscured = True
.Visible = True
End With

End Sub
※影の水平方向、垂直方向の位置はそれぞれOffsetX,OffsetYプロパティーにより指定し、影の移動はIncrementOffsetX,IncrementOffsetYメソッドを使用します。

※影の透明度の設定はTrnasparencyプロパティーに0.0(不透明)から1.0(透明)の値を指定します。

※塗りつぶし効果の非表示:(※FillFormatオブジェクトの非表示)
	Sh.Fill.Visible = False
	Sh.Shadow.Obscured = True