Excel VBA 図形(シェイプ)の面取りに材質感を設定する

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

PresetMaterial【プリセットマテリアル】 プロパティ

図形(シェイプ)の表面に材質感を取得または設定するには
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
PresetMaterial【プリセットマテリアル】 プロパティを使用します。

PresetMaterial【プリセットマテリアル】 プロパティ

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


  • オブジェクト(必須)
    WorksheetオブジェクトのShapes【シェイプス】プロパティまたは
    Shapes【シェイプス】コレクションの
    AddShape【アドシェイプ】メソッドで取得した図形を表す
    Shape【シェイプ】オブジェクトの
    TreeD【スリーディ】プロパティで取得して
    立体の書式設定を表す
    TreeDFormat【スリーディフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    図形の表面の材質の種類を
    MsoPresetMaterial列挙型に定数または値で指定します。

    MsoPresetMaterial列挙型
    定数内容イメージ
    msoMaterialMatte1つや消し
    msoMaterialPlastic2プラスチック
    msoMaterialMetal3メタル
    msoMaterialWireFrame4ワイヤーフレーム
    msoMaterialMatte25つや消し2
    msoMaterialPlastic26プラスチック2
    msoMaterialMetal27メタル2
    msoMaterialWarmMatte8つや消し (明るめ)
    msoMaterialTranslucentPowder9透明パウダー
    msoMaterialPowder10パウダー
    msoMaterialDarkEdge11ダーク エッジ
    msoMaterialSoftEdge12ぼかし
    msoMaterialClear13透明
    msoMaterialFlat14フラット
    msoMaterialSoftMetal15ソフト メタル

15種類の材質の図形を作成するコード例

Sub 材質()
Dim R As Range
Dim i As Integer
For i = 1 To 15
Set R = Cells(2, i)
With ActiveSheet.Shapes.AddShape(5, R.Left, R.Top, R.Width, R.Height).ThreeD
     .BevelTopType = 7
     .BevelBottomType = 7
     .SetPresetCamera (30)
     .PresetMaterial = i
End With
Next i
End Sub

コードの解説

2行目
【Dim R As Range】

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


3行目
【Dim i As Integer】

セルの列番号と図形の材質のを設定する
PresetMaterial【プリセットマテリアル】プロパティの
設定値を兼ねる
繰り返し処理の中で使用する
カウンター変数「i」を
整数型(Integer)で宣言します。


4行目
【For i = 1 To 15】

For Next【フォアネクスト】ステートメントを使用して
繰り返し処理の始まりです。
繰り返し処理の中で
1~15の値をカウンター変数「i」に順次代入します。


5行目
【Set R = Cells(2, i)】

2行目のi列のセルを
オブジェクト変数「R」に
Setキーワードを使用して代入します。


6行目
【With ActiveSheet.Shapes.AddShape(5, R.Left, R.Top, R.Width, R.Height).ThreeD】

WorkSheetオブジェクトの
図形の集まりを表す
Shapes【シェイプス】コレクションの
AddShape【アドシェイプ】メソッド
図形を表す、Shape【シェイプ】オブジェクトを作成して
Shape【シェイプ】オブジェクトの
ThreeD【スリーディ】プロパティを使用して
立体の書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトを取得して
Withステートメントで指定します。


7行目
【.BevelTopType = 7】

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


8行目
【.BevelBottomType = 7】

Withステートメントで指定した
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
図形の裏面の面取りのタイプを設定する
BevelBottomType【ベベルボトムタイプ】プロパティに
ソフトラウンドを表す定数の値の7を設定します。


9行目
【.SetPresetCamera (30)】

Withステートメントで指定した
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
図形の視点の位置を設定する
SetPresetCamera【セットプリセットカメラ】プロパティ
等角投影(不等角投影1上)を表す定数の値の30を設定します。


10行目
【.PresetMaterial = i】

Withステートメントで指定した
立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトの
図形の表面の材質感を設定する
PresetMaterial【プリセットマテリアル】プロパティに
カウンター変数「i」を設定して
繰り返し処理の中で15種類の材質の図形を作成します。


実行結果


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

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

フォローする

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