Excel VBA 図形(シェイプ)に3-D回転効果のスタイルを設定する

スポンサーリンク

図形(シェイプ)に3-D回転効果のスタイルを設定する

図形(シェイプ)に3-D回転効果のスタイルを設定するには、3-D回転を設定する図形を表す
Shape【シェイプ】オブジェクトのThreeD【スリーディ】プロパティで立体の書式設定を表すThreeDFormat【スリーディフォーマット】オブジェクトを取得して、ThreeDFormat【スリーディフォーマット】オブジェクトのSetPresetCamera【セットプリセットカメラ】プロパティに視点の方向を表す定数または値を指定し、3-D回転効果のスタイルを設定します。


SetPresetCamera【セットプリセットカメラ】プロパティ

3-Dカメラの視点の位置を設定するには、立体の書式設定を表すThreeDFormat【スリーディフォーマット】オブジェクトのSetPresetCamera【セットプリセットカメラ】プロパティを使用します。

SetPresetCamera【セットプリセットカメラ】プロパティの書式と設定値(引数)の説明

オブジェクト.SetPresetCamera (設定値)

  • オブジェクト(必須)
    3-D回転効果を設定する図形を表すShape【シェイプ】オブジェクトの、ThreeD【スリーディ】プロパティで取得した、立体の書式設定を表すThreeDFormat【スリーディフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    カメラの視点の方向をMsoPresetCamera列挙型の定数または値で指定します。

    MsoPresetCamera列挙型
    定数 内容 イメージ
    msoCameraLegacyObliqueTopLeft 1 斜投影
    (左上)
    msoCameraLegacyObliqueTop 2 斜投影
    (上)
    msoCameraLegacyObliqueTopRight 3 斜投影
    (右上)
    msoCameraLegacyObliqueLeft 4 斜投影
    (左)
    msoCameraLegacyObliqueFront 5 斜投影
    (前)
    msoCameraLegacyObliqueRight 6 斜投影
    (右)
    msoCameraLegacyObliqueBottomLeft 7 斜投影
    (左下)
    msoCameraLegacyObliqueBottom 8 斜投影
    (下)
    msoCameraLegacyObliqueBottomRight 9 斜投影
    (右下)
    msoCameraLegacyPerspectiveTopLeft 10 透視投影
    (左上)
    msoCameraLegacyPerspectiveTop 11 透視投影
    (上)
    msoCameraLegacyPerspectiveTopRight 12 透視投影
    (右上)
    msoCameraLegacyPerspectiveLeft 13 透視投影
    (左上)
    msoCameraLegacyPerspectiveFront 14 透視投影
    (前)
    msoCameraLegacyPerspectiveRight 15 透視投影
    (右)
    msoCameraLegacyPerspectiveBottomLeft 16 透視投影
    (左下)
    msoCameraLegacyPerspectiveBottom 17 透視投影
    (下)
    msoCameraLegacyPerspectiveBottomRight 18 透視投影
    (右下)
    msoCameraOrthographicFront 19 正射投影
    (前)
    msoCameraIsometricTopUp 20 等角投影
    (上向き
    右上がり)
    msoCameraIsometricTopDown 21 等角投影
    (上向き
    右下がり)
    msoCameraIsometricBottomUp 22 等角投影
    (下向き
    右上がり)
    msoCameraIsometricBottomDown 23 等角投影
    (下向き
    右下がり)
    msoCameraIsometricLeftUp 24 等角投影
    (左向き
    右上がり)
    msoCameraIsometricLeftDown 25 等角投影
    (左向き
    右下がり)
    msoCameraIsometricRightUp 26 等角投影
    (右向き
    右上がり)
    msoCameraIsometricRightDown 27 等角投影
    (右向き
    右下がり)
    msoCameraIsometricOffAxis1Left 28 等角投影
    (不等角
    投影1左)
    msoCameraIsometricOffAxis1Right 29 等角投影
    (不等角
    投影1右)
    msoCameraIsometricOffAxis1Top 30 等角投影
    (不等角
    投影1上)
    msoCameraIsometricOffAxis2Left 31 等角投影
    (不等角
    投影2左)
    msoCameraIsometricOffAxis2Right 32 等角投影
    (不等角
    投影2右)
    msoCameraIsometricOffAxis2Top 33 等角投影
    (不等角
    投影2上)
    msoCameraIsometricOffAxis3Left 34 等角投影
    (不等角
    投影3左)
    msoCameraIsometricOffAxis3Right 35 等角投影
    (不等角
    投影3右)
    msoCameraIsometricOffAxis3Bottom 36 等角投影
    (不等角
    投影3下)
    msoCameraIsometricOffAxis4Left 37 等角投影
    (不等角
    投影4左)
    msoCameraIsometricOffAxis4Right 38 等角投影
    (不等角
    投影4右)
    msoCameraIsometricOffAxis4Bottom 39 等角投影
    (不等角
    投影4下)
    msoCameraObliqueTopLeft 40 斜投影
    (左上)
    msoCameraObliqueTop 41 斜投影
    (上)
    msoCameraObliqueTopRight 42 斜投影
    (右上)
    msoCameraObliqueLeft 43 斜投影
    (左)
    msoCameraObliqueRight 44 斜投影
    (右)
    msoCameraObliqueBottomLeft 45 斜投影
    (左下)
    msoCameraObliqueBottom 46 斜投影
    (下)
    msoCameraObliqueBottomRight 47 斜投影
    (右下)
    msoCameraPerspectiveFront 48 透視投影
    (前)
    msoCameraPerspectiveLeft 49 透視投影
    (左)
    msoCameraPerspectiveRight 50 透視投影
    (右)
    msoCameraPerspectiveAbove 51 透視投影
    (上)
    msoCameraPerspectiveBelow 52 透視投影
    (下)
    msoCameraPerspectiveAboveLeftFacing 53 透視投影
    (左上
    前面)
    msoCameraPerspectiveAboveRightFacing 54 透視投影
    (右上
    前面)
    msoCameraPerspectiveContrastingLeftFacing 55 透視投影
    コント
    ラスト
    (左前面)
    msoCameraPerspectiveContrastingRightFacing 56 透視投影
    コント
    ラスト
    (右前面)
    msoCameraPerspectiveHeroicLeftFacing 57 透視投影
    (左前面)
    msoCameraPerspectiveHeroicRightFacing 58 透視投影
    (右前面)
    msoCameraPerspectiveHeroicExtremeLeftFacing 59 透視投影
    強調
    (左前面)
    msoCameraPerspectiveHeroicExtremeRightFacing 60 透視投影
    強調
    (右前面)
    msoCameraPerspectiveRelaxed 61 透視投影
    (緩い
    傾斜)
    msoCameraPerspectiveRelaxedModerately 62 透視投影
    (中程度
    の傾斜)

※3-D回転効果をクリアする場合は、定数「msoCameraOrthographicFront」、または値「19」の正射投影を設定します。


62種類の3-D回転効果のスタイルを表示するコードと解説

Sub TreeDスタイル()
Dim R As Range
Dim i As Integer
For i = 1 To 62
Set R = Cells(2, i)
With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height).ThreeD
    .BevelTopType = 13
    .SetPresetCamera (i)
End With
Next i
End Sub
2行目【Dim R As Range】
図形の位置と大きさの基準となるセル範囲を格納する変数「R」をオブジェクト型(Range)で宣言します。


3行目【Dim i As Integer】
セルの列番号とカメラの視点の位置を表す定数の値を兼ねる繰り返し処理の中で使用する
カウンター変数「i」を整数型(Integer)で宣言します。


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


5行目【Set R = Cells(2, i)】
Cells【セルズ】プロパティを使用して、2行目のi列のセルをオブジェクト変数RにSetキーワードを使用して代入します。


6行目【With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height).ThreeD】
Worksheet【ワークシート】オブジェクトの図形の集まりを表すShapes【シェイプス】コレクションの
AddShape【アドシェイプ】メソッドを使用して図形を表すShape【シェイプ】オブジェクトを取得し
Shape【シェイプ】オブジェクトのTreeD【スリーディ】プロパティを使用して立体の書式設定を表す
TreeDFormat【スリーディフォーマット】オブジェクトを取得してWith【ウィズ】ステートメントで指定します。


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


8行目【.SetPresetCamera (i)】
With【ウィズ】ステートメントで指定した立体の書式設定を表すTreeDFormat【スリーディフォーマット】オブジェクトの視点の方向を設定するSetPresetCamera【セットプリセットカメラ】プロパティに
カメラの視点のスタイルを表す値をカウンター変数iに設定して繰り返し処理の中で1~62のスタイルを設定して表示します。


実行結果


以上で、図形(シェイプ)に3-D回転効果のスタイルを設定する方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告