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種類の材質の図形を作成します。


実行結果


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

スポンサーリンク

関連記事・広告