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
|