Excel VBA 図形(シェイプ)に影を設定する

スポンサーリンク

作成した図形(シェイプ)に影を設定する方法

図形に影を設定するには、Shape【シェイプ】オブジェクトまたはShapeRange【シェイプレンジ】コレクションの下位オブジェクトにあたるShadowFormat【シャドウフォーマット】オブジェクトをShadow【シャドウ】プロパティで取得します。

影の書式を表す、ShadowFormat【シャドウフォーマット】オブジェクトのメンバーであるプロパティを使用して影に、さまざまな設定をします。

Shadow【シャドウ】プロパティ

図形の影の操作の対象となるShadowFormat【シャドウフォーマット】オブジェクトを取得するには、Shape【シェイプ】オブジェクト、またはShapeRange【シェイプレンジ】コレクションのShadow【シャドウ】プロパティを使用します。

Shadow【シャドウ】プロパティの書式と設定値の説明

オブジェクト.Shadow
【戻り値】ShadowFormat【シャドウフォーマット】オブジェクト

  • オブジェクト(必須)
    Shape【シェイプ】オブジェクトまたは、ShapeRange【シェイプレンジ】コレクションを指定します。

ShadowFormat【シャドウフォーマット】オブジェクトの主なプロパティ一覧

プロパティ内容
Type【タイプ】あらかじめ設定されている影の種類を設定します。
ForeColor【フォアカラー】影に色を設定します。
Transparency 【トランスパレンシー】影の透明度を指定します。
Visible【ビジブル】プロパティ影の表示切替をします。
OffsetX【オフセットエックス】
OffsetY【オフセットワイ】
指定した図形を基準に
影の位置を相対的に指定します。
Blur【ブロアー】影のぼかし具合を設定します。

Type【タイプ】プロパティ

影のタイプを指定するには、ShadowFormat【シャドウフォーマット】オブジェクトのType【タイプ】プロパティを使用します。

Type【タイプ】プロパティの書式と設定値の説明

オブジェクト.Type = 設定値


  • オブジェクト(必須)
    ShadowFormat【シャドウフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    影の種類をMsoShadowType列挙型の定数または、定数の値で指定します。
MsoShadowType列挙型一覧表


20種類の影のスタイルを表示するコート例

Sub 影作成()
Dim i As Long
For i = 1 To 20
With ActiveSheet.Shapes.AddShape(1, Range("B" & i).Left, _
    Range("B" & i).Top, 15, 15)
   .Shadow.Type = i
End With
Next i
End Sub

※Type【タイプ】プロパティで作成した影は、Visible【ビジブル】プロパティ(影の表示切替)Blur【ブロアー】プロパティ(ぼかしの設定)などのプロパティは使用できません。


ForeColor【フォアカラー】プロパティ

影に色を設定するには、ShadowFormat【シャドウフォーマット】オブジェクトのForeColor【フォアカラー】プロパティを使用してColorFormat【カラーフォーマット】オブジェクトを取得します。ColorFormat【カラーフォーマット】オブジェクトは色をRGBプロパティのRGB関数で指定したりSchemeColor【スキームカラー】プロパティを使用して色番号で指定します。ForeColor【フォアカラー】プロパティを指定しない場合は黒が指定されます。値の取得と設定ができます。

ForeColor【フォアカラー】プロパティの書式と設定値の説明

【取得】
オブジェクト.ForeColor.RGBまたは.SchemeColor
【戻り値】長整数型(Long)
【設定】
オブジェクト.ForeColor.RGBまたは.SchemeColor = 設定値

  • オブジェクト(必須)
    ShadowFormat【シャドウフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    RGBプロパティを指定した場合はRGB関数で色を指定します。SchemeColorプロパティを指定した場合は色番号を指定します。※SchemeColor【スキームカラー】プロパティの色番号はColorIndex【カラーインデックス】プロパティのインデックス番号とは異なります。ColorIndexプロパティのインデックス番号に7を加算した値がSchemcolorプロパティの色番号と同じになります。例として黒の場合ColorIndexプロパティは1、Schemcolorプロパティは8

赤色の影を設定したコード例

Sub 影色()
Dim i As Long
With ActiveSheet.Shapes.AddShape(1, Range("B2").Left, _
    Range("B2").Top, 60, 60).Shadow
   .Type = 6
   .ForeColor.RGB = RGB(255, 0, 0)
End With
End Sub

実行結果


Transparency 【トランスパレンシー】プロパティ

影に透明度を設定するには、ShadowFormat【シャドウフォーマット】オブジェクトのTransparency 【トランスパレンシー】プロパティを使用します。値の取得と設定ができます。

Transparency 【トランスパレンシー】プロパティの書式と設定値の説明

【取得】
オブジェクト.Transparency
【戻り値】倍精度浮動小数点型 (Double)
【設定】
オブジェクト.Transparency = 設定値

  • オブジェクト(必須)
    ShadowFormat【シャドウフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    塗りつぶしの透明度を示す 0.0 (不透明) ~ 1.0 (透明) の値を指定します。Transparency【トランスパレンシー】 プロパティを指定しない場合の既定値は0.5(半透明)です。

影の透明度を不透明に設定したコード例

Sub 影色()
Dim i As Long
With ActiveSheet.Shapes.AddShape(1, Range("B2").Left, _
    Range("B2").Top, 60, 60).Shadow
   .Type = 6
   .Transparency = 0
End With
End Sub

実行結果


Visible【ビジブル】プロパティ

影の表示の切り替えをするには、ShadowFormat【シャドウフーマット】オブジェクトのVisible【ビジブル】プロパティを使用します。Type【タイプ】プロパティで影の種類を選択している場合は影のタイプは無視されます。値の取得および設定ができます。

Visible【ビジブル】プロパティの書式と設定値の説明

【取得】
オブジェクト.Visible
【戻り値】ブール型(Boolean)
【設定】
オブジェクト.Visible = 設定値

  • オブジェクト(必須)
    ShadowFormat【シャドウフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    影を表示する場合はTrueを指定します。

OffsetX【オフセットエックス】OffsetY【オフセットワイ】プロパティ

指定された図形を基準に水平方向(横)の位置に影を設定するには、OffsetX【オフセットエックス】プロパティを使用します。ポイント単位で指定し、正の値を指定した場合は図形の右、負の値を指定した場合は図形の左に影が設定されます。

指定された図形を基準に垂直方向(縦)の位置に影を設定するには、OffsetY【オフセットワイ】プロパティを使用します。ポイント単位で指定し、正の値を指定した場合は図形の下、負の値を指定した場合は図形の上に影が設定されます。

値の取得および設定ができます。【戻り値】単精度浮動小数点型 (Single) の値

OffsetX【オフセットエックス】OffsetY【オフセットワイ】プロパティの書式と設定値

オブジェクト.OffsetX = 設定値
オブジェクト.OffsetY = 設定値

  • オブジェクト(必須)
    ShadowFormat【シャドウフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    指定した図形からの相対位置をポイント単位(1ポイント約0.35ミリ)で指定します。

Visible【ビジブル】プロパティで影作成コード例

Sub 影作成2()
Dim i As Long
With ActiveSheet.Shapes.AddShape(1, Range("B2").Left, _
    Range("B2").Top, 60, 60).Shadow
 .Visible = True
 .Transparency = 0.5
 .OffsetX = 5
 .OffsetY = 5
End With
End Sub

実行結果


Blur【ブロアー】プロパティ

影のぼかしを設定するには、ShadowFormat【シャドウフォーマット】オブジェクトのBlur【ブロアー】プロパティを使用します。値の取得と設定ができます。

Blur【ブロアー】プロパティの書式と設定値

【取得】
オブジェクト.Blur
【戻り値】単精度浮動小数点型 (Single)
【設定】
オブジェクト.Blur = 設定値

  • オブジェクト(必須)
    ShadowFormat【シャドウオーマット】オブジェクトを指定します。
  • 設定値(必修)
    ぼかしの度合いを単精度浮動小数点型 (Single)の値で指定します。

影のぼかしを20に設定したコード例

Sub 影ぼかし()
Dim i As Long
With ActiveSheet.Shapes.AddShape(1, Range("B2").Left, _
    Range("B2").Top, 60, 60).Shadow
 .Visible = True
 .Transparency = 0.5
 .OffsetX = 5
 .OffsetY = 5
 .Blur = 20
End With
End Sub

実行結果


以上で、図形(シェイプ)に影を設定するについての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告