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

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

ContourWidth【カウントアワイズ】プロパティ

3-D図形に輪郭を設定するには
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
ContourWidth【カウントアワイズ】プロパティを使用します。

ContourWidth【カウントアワイズ】プロパティの書式

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


設定値の説明


ContourColor 【カウントアカラー】 プロパティ

3-D図形の輪郭の色の書式設定を表す
ColorFormat【カラーフォーマット】オブジェクトを取得するには
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
ContourColor 【カウントアカラー】 プロパティを使用します。

ContourColor 【カウントアカラー】 プロパティの書式

オブジェクト.ContourColor .プロパティ = 設定値


設定値の説明

  • オブジェクト(必須)
    Worksheetオブジェクトの
    Shapes【シェイプス】プロパティまたは
    Shapes【シェイプス】コレクションの
    AddShape【アドシェイプ】メソッドで取得した
    図形を表す、Shape【シェイプ】オブジェクトの
    TreeD【スリーディ】プロパティで取得した
    立体の書式設定を表す
    TreeDFormat【スリーディフォーマット】オブジェクトを指定します。
  • プロパティ = 設定値(必須)
    取得した3-D図形の奥行きの色の書式設定を表す
    ColorFormat【カラーフォーマット】オブジェクトのプロパティを設定します。

    主なColorFormatオブジェクトプロパティ一覧
    プロパティ設定値
    RGB
    【アールジービー】
    設定値はRGB関数を使用して
    奥行きの色を指定します。
    TintAndShade
    【テントアンドシャドゥ】
    色の濃度を設定します。
    設置値は-1(最も濃い)~1(最も薄い)の間の
    単精度浮動小数点型 (Single)の値を設定します。

3-D図形に奥行きを設定するコード例

実行イメージ(実際はもっとスムーズに動作します。)


Sub 輪郭()
Dim R As Range
Dim 図形 As Shape
Dim i As Single
Set R = Range("B3:C8")
Set 図形 = ActiveSheet.Shapes.AddShape(9, R.Left, R.Top, R.Width, R.Height)
For i = 1 To 50 Step 0.1
   With 図形.ThreeD
         .BevelTopType = 3
         .ContourWidth = i
         .ContourColor.RGB = RGB(255, 0, 0)
         .ContourColor.TintAndShade = 0.3
    DoEvents
End With
Next i
For i = 50 To 0 Step -0.1
    図形.ThreeD.ContourWidth = i
    DoEvents
Next i
End Sub

コードの解説

2行目
【Dim R As Range】

図形の位置と大きさの基準となる
セルを格納する変数「R」を
オブジェクト型(Range)で宣言します。


3行目
【Dim 図形 As Shape】

AddShape【アドシェイプ】メソッドで作成した
図形を格納する変数「図形」を
オブジェクト型(Shape)で宣言します。


4行目
【Dim i As Single】

繰り返し処理の中で
奥行きの長さを設定する
Depth【ディプス】プロパティに設定する
長さのポイントの値を格納する
カウンター変数「i」を
単精度浮動小数点型 (Single)で宣言します。


5行目
【Set R = Range(“B3:C8”)】

図形の位置と大きさの基準となる
B3セル~C8セルのセル範囲を
オブジェクト型変数「R」に
Setキーワードを使用して格納します。


6行目
【Set 図形 = ActiveSheet.Shapes.AddShape(9, R.Left, R.Top, R.Width, R.Height)】

Worksheetオブジェクトの
図形の集まりを表す
Shapes【シェイプス】コレクションの
AddShape【アドシェイプ】メソッドを使用して図形を作成して
オブジェクト変数「図形」に
Setキーワードを使用して格納します。


7行目
【For i = 1 To 50 Step 0.1】

For Next【フォアネクスト】ステートメントを使用して
繰り返し処理の始まりです。
カウンター変数「i」に
1~50の値をStepに設定した加算値0.1ずつ順次代入します。


8行目
【With 図形.ThreeD】

変数「図形」に格納されている
図形を表す、Shape【シェイプ】オブジェクトの
ThreeD【スリーディ】プロパティを使用して
立体の書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトを取得して
Withステートメントで指定します。


9行目
【.BevelTopType = 3】
Withステートメントで指定した
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
図形の表面の面取りを設定する
BevelTopType【ベベルトップタイプ】プロパティ
円形を表す定数の値3を設定します。


10行目
【.ContourWidth = i】
Withステートメントで指定した
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
図形に奥行きの長さを設定する
ContourWidth【カウントアワイズ】プロパティに
カウンター変数のiを設定して
繰り返し処理の中で1~50の値が
0.1ずつ加算されて設定されます。


11行目
【 .ContourColor.RGB = RGB(255, 0, 0)】

Withステートメントで指定した
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
ContourColor【カウントアカラー】プロパティを使用して
図形の輪郭の色の書式設定を表す
ColorFormat【カラーフォーマット】オブジェクトを取得して
ColorFormat【カラーフォーマット】オブジェクトの
色を設定する
RGB【アールジービー】プロパティに
RGB関数を使用して色を設定します。


12行目
【.ContourColor.TintAndShade = 0.3】

Withステートメントで指定した
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
ContourColor【カウントアカラー】プロパティを使用して
図形の奥行きの色の書式設定を表す
ColorFormat【カラーフォーマット】オブジェクトを取得して
ColorFormat【カラーフォーマット】オブジェクトの
色の濃さを設定する
TintAndShade【テントアンドシャドウ】プロパティに0.3を設定します。


13行目
【DoEvents】

DoEvents【ドゥイベンツ】関数を使用して
繰り返し処理の制御を
一時的にオペレーティングシステムに戻し
図形をセルに描画します。
DoEvents【ドゥイベンツ】関数を使用しないと
図形の描画が行われないで処理が終了してしまいます。


15行目
【Next i】

ここまでの処理を7行目から
500回繰り返して(加算値が0.1で50回のため)
図形の輪郭の幅を設定する
ContourWidth【カウントアワイズ】プロパティの設定値に
図形の奥行きの長さを0.1ポイントずつ50まで加算していき
DoEvents【ドゥイベンツ】関数を使用して
繰り返し処理の制御を1回ずつOSに戻して
図形の状態を描画して図形の輪郭が拡大する状態を表現します。


16行目
【For i = 50 To 0 Step -0.1】

ここからは50ポイントまで拡大した図形の輪郭を
0ポイント(輪郭なし)まで順次描画するコードです。
For Next【フォアネクスト】ステートメントを使用して
繰り返し処理の中で
カウンター変数「i」に50~0の値を-0.1ずつ減算して代入します。


17行目
【図形.ThreeD.ContourWidth = i】

AddShape【アドシェイプ】メソッドで追加した
図形を表す
Shape【シェイプ】オブジェクトが格納されている
オブジェクト変数「図形」の
ThreeD【スリーディ】プロパティで取得した
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
図形の輪郭の大きさを設定する
ContourWidth【カウントアワイズ】プロパティに
カウンター変数「i」を設定します。


18行目
【DoEvents】

DoEvents【ドゥイベンツ】関数を使用して
繰り返し処理の制御を
一時的にオペレーティングシステムに戻し
図形をセルに描画します。


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

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

フォローする

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