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

スポンサーリンク
スポンサーリンク

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

図形に影を設定するには
Shape【シェイプ】オブジェクトまたは
ShapesRange【シェイプスレンジ】コレクションの下位オブジェクトにあたる
ShadowFormat【シャドウフォーマット】オブジェクトを
Shadow【シャドウ】プロパティで取得します。
影の書式を表す、ShadowFormat【シャドウフォーマット】オブジェクトの
メンバーであるプロパティを使用して
影に、さまざまな設定をします。

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

図形の影の操作の対象となる
ShadowFormat【シャドウフォーマット】オブジェクトを取得するには
Shape【シェイプ】オブジェクトの
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

実行結果


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

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク