図形(シェイプ)に光源を設定する
3D効果を設定した図形(シェイプ)を照らす光源のタイプや強さ、方向などを設定するには、立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトの以下のプロパティを使用して設定します。
3D図形に光源を設定する主なプロパティ一覧
プロパティ | 内容 |
---|---|
PresetLighting 【プリセットライティング】 | 光源のタイプを設定します。 |
PresetLightingSoftness 【プリセットライティングソフィネス】 | 光源の強さを設定します。 |
PresetLightingDirection 【プリセットライティングディレクション】 | 光源の方向を設定します。 |
PresetLighting
【プリセットライティング】プロパティ
3D効果を設定した図形を照らす光源のタイプを設定するには、立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトのPresetLighting【プリセットライティング】プロパティを使用します。
PresetLighting【プリセットライティング】プロパティの書式と設定値の説明
オブジェクト.PresetLighting = 設定値
- オブジェクト(必須)
Worksheet【ワークシート】オブジェクトのShapes【シェイプス】プロパティ、またはShapes【シェイプス】コレクションのAddShape【アドシェイプ】メソッドで取得した、図形を表Shape【シェイプ】オブジェクトのTreeD【スリーディ】プロパティで取得した、立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトを指定します。 - 設定値(必須)
光源のタイプをMsoLightRigType列挙型の定数または値で指定します。
PresetLightingSoftness
【プリセットライティングソフィネス】プロパティ
3D効果を設定した図形を照らす光源の強さを設定するには、立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトのPresetLightingSoftness【プリセットライティングソフィネス】プロパティを使用します。
PresetLightingSoftness【プリセットライティングソフィネス】プロパティの書式と設定値の説明
オブジェクト.PresetLightingSoftness = 設定値
- オブジェクト(必須)
Worksheet【ワークシート】オブジェクトのShapes【シェイプス】プロパティ、またはShapes【シェイプス】コレクションのAddShape【アドシェイプ】メソッドで取得した、図形を表すShape【シェイプ】オブジェクトのTreeD【スリーディ】プロパティで取得した、立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトを指定します。 - 設定値(必須)
光源の強さをMsoPresetLightingSoftness列挙型の定数または値で指定します。
※光源のタイプを表すPresetLighting【プリセットライティング】プロパティが未設定または既定値の定数msoLightRigThreePointまたは値13が設定されている場合は、光源の強さを表すPresetLightingSoftness【プリセットライティングソフィネス】プロパティの設定は反映されません。
PresetLightingDirection
【プリセットライティングディレクション】プロパティ
3D効果を設定した図形を中心として、光源の方向を設定するには、立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトのPresetLightingDirection【プリセットライティングディレクション】プロパティを使用します。
PresetLightingDirection【プリセットライティングディレクション】プロパティの書式と設定値の説明
オブジェクト.PresetLightingDirection = 設定値
- オブジェクト(必須)
Worksheet【ワークシート】オブジェクトのShapes【シェイプス】プロパティ、またはShapes【シェイプス】コレクションのAddShape【アドシェイプ】メソッドで取得した、図形を表Shape【シェイプ】オブジェクトのTreeD【スリーディ】プロパティで取得した、立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトを指定します。 - 設定値(必須)
光源の方向を
MsoPresetLightingDirection列挙型の定数または値で指定します。
27種類の光源タイプを当てた図形を作成するコードと解説
Sub 光源() Dim R As Range Dim i As Integer For i = 1 To 27 Set R = Cells(2, i) With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height).ThreeD .BevelTopType = 6 .BevelTopDepth = 18 .BevelTopInset = 18 .PresetLighting = i .PresetLightingSoftness = 3 .PresetLightingDirection = 8 End With Next i End Sub
図形の位置と大きさの基準となるセル範囲を格納する変数「R」をオブジェクト型(Range)で宣言します。
3行目【Dim i As Integer】
セルの列番号と光源のタイプの値を兼ねる繰り返し処理の中で使用されるカウンター変数「i」を整数型(Integer)で宣言します。
4行目【For i = 1 To 27】
For Next【フォアネクスト】ステートメントを使用して繰り返し処理の始まりです。1~27の値を繰り返し処理の中で順次カウンター変数iに代入します。
5行目【Set R = Cells(2, i)】
2行目のi列のセルをオブジェクト変数RにSetキーワードを使用して代入します。
6行目【With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height).ThreeD】
Worksheet【ワークシート】オブジェクトの図形の集まりを表すShapes【シェイプス】コレクションのAddShape【アドシェイプ】メソッドを使用して図形を表す、Shape【シェイプ】オブジェクトを取得します。
取得したShape【シェイプ】オブジェクトのThreeD【スリーディ】プロパティを使用して立体の書式設定を表すThreeDFormat【スリーディフォーマット】オブジェクトを取得してWith【ウィズ】ステートメントで指定します。
7行目~9行目【.BevelTopType = 6
.BevelTopDepth = 18
.BevelTopInset = 18】
With【ウィズ】ステートメントで指定した立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトの図形の表面の面取りのタイプを設定するBevelTopType【ベベルトップタイプ】プロパティに角度タイプを表す値6を設定します。
図形の表面の面取りの奥行きをポイント単位で設定するBevelTopDepth【ベベルトップディプス】プロパティに18ポイントを設定します。図形の表面の面取りの高さをポイント単位で設定するBevelTopInset【ベベルトップインセット】プロパティに18ポイントを設定します。
10行目【 .PresetLighting = i】
With【ウィズ】ステートメントで指定した立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトの光源のタイプを設定するPresetLighting【プリセットライティング】プロパティにカウンター変数iを設定して繰り返し処理の中1~27の値を設定します。
11行目【.PresetLightingSoftness = 3】
With【ウィズ】ステートメントで指定した立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトの光源の強さを設定するPresetLightingSoftness【プリセットライティングソフィネス】プロパティに「明るい光源」を表す3を設定します。
12行目【 .PresetLightingDirection = 8】
With【ウィズ】ステートメントで指定した立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトの光源の位置を設定するPresetLightingDirection【プリセットライティングディレクヨン】プロパティに下部からの光源を表す8を設定します。
実行結果
以上で、図形(シェイプ)に光源を設定する方法についての解説を終了します。ありがとうございました。