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

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

図形(シェイプ)に面取りを設定する方法

図形(シェイプ)に面取りを設定するには
図形を表す
Shape【シェイプ】オブジェクトの
ThreeD【スリーディ】プロパティを使用して
図形の立体の書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトを取得し
ThreeDFormat【スリーディフォーマット】オブジェクトの
BevelTopType【ベベルトップタイプ】プロパティに
面取りのタイプを表す、定数または値を指定して
図形に面取りを設定します。


BevelTopType【ベベルトップタイプ】プロパティ

指定した図形(シェイプ)の表面に面取りを設定するには
図形の立体の書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトの
BevelTopType【ベベルトップタイプ】プロパティを使用します。
Bevel【ベベル】は斜面という意味があります。

BevelTopType【ベベルトップタイプ】プロパティの書式

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


設定値の解説

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

    MsoBevelType列挙型
    定数内容イメージ
    msoBevelNone1面取りをしません。
    msoBevelRelaxedInset2額縁風
    msoBevelCircle3円形
    msoBevelSlope4スロープ
    msoBevelCross5十字形
    msoBevelAngle6角度
    msoBevelSoftRound7ソフトラウンド
    msoBevelConvex8浮き上がり
    msoBevelCoolSlant9クール スラント
    msoBevelDivot10切り込み
    msoBevelRiblet11スケール
    msoBevelHardEdge12ハード エッジ
    msoBevelArtDeco13アール デコ

BevelBottomType【ベベルボトムタイプ】プロパティ

指定した図形(シェイプ)の裏面に面取りを設定するには
図形の立体の書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトの
BevelBottomType【ベベルボトムタイプ】プロパティを使用します。
Bevel【ベベル】は斜面という意味があります。

BevelBottomType【ベベルボトムタイプ】プロパティの書式

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


設定値の解説

設定値はBevelTopType【ベベルトップタイプ】プロパティと同じです。

BevelTopDepth【ベベルトップディプス】 プロパティ

指定した図形(シャイプ)の表面の面取りの奥行きを設定するには
図形の立体の書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトの
BevelTopDepth【ベベルトップディプス】 プロパティを使用します。

BevelTopDepth【ベベルトップディプス】 プロパティの書式

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


  • オブジェクト(必須)
    WorksheetオブジェクトのShapes【シェイプス】プロパティまたは
    Shapes【シェイプス】コレクションのAddShape【アドシェイプ】メソッドで
    取得した、図形の立体の書式設定を表す
    ThreeDFormat【スリーディフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    面取りの奥行きの長さをポイント単位で指定します。既定値は6ptです。
    0pt~1584ptの範囲で単精度浮動小数点数型(Single)の値で指定します。
    1pt【ポイント】は約0.35ミリでセルの行の高さと同じ単位です。

※図形の裏面の面取りの奥行きを設定するには
BevelBottomDepth【ベベルボトムディプス】 プロパティを使用します。


BevelTopInset【ベベルトップインセット】 プロパティ

指定した図形(シャイプ)の表面の面取りの高さを設定するには
図形の立体の書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトの
BevelTopInset【ベベルトップインセット】 プロパティを使用します。

BevelTopInset【ベベルトップインセット】 プロパティの書式

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


  • オブジェクト(必須)
    WorksheetオブジェクトのShapes【シェイプス】プロパティまたは
    Shapes【シェイプス】コレクションのAddShape【アドシェイプ】メソッドで
    取得した、図形の立体の書式設定を表す
    ThreeDFormat【スリーディフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    面取りの高さをポイント単位で指定します。既定値は6ptです。
    0pt~1584ptの範囲で単精度浮動小数点数型(Single)の値で指定します。
    1pt【ポイント】は約0.35ミリでセルの行の高さと同じ単位です。

※図形の裏面の面取りの高さを設定するには
BevelBottomInset【ベベルボトムインセット】 プロパティを使用します。


12種類の面取りをした図形を表示するコード例

Sub 面取り()
Dim R As Range
Dim i As Integer
For i = 2 To 13
Set R = Cells(2, i)
With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height).ThreeD
    .BevelTopType = i
    .BevelTopDepth = 10
    .BevelTopInset = 10
End With
Next i
End Sub

コードの解説

2行目
【Dim R As Range】

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


3行目
【Dim i As Integer】

繰り返し処理で使用する
セルの列番号と面取りのタイプの値を兼ねる
カウンター変数「i」を
整数型(Integer)で宣言します。


4行目
【For i = 2 To 13】

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


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【シェイプ】オブジェクトの
ThreeD【シェイーディ】プロパティで
面取りの書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトを取得して
withステートメントで指定します。


7行目
【.BevelTopType = i】

Withステートメントで指定した
面取りの書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトの
BevelTopType【ベベルトップタイプ】プロパティを使用して
面取りのタイプを指定します。
面取りのタイプの値はカウンター変数iを指定し
2~13の値を繰り返し処理の中で順次代入します。


8行目
【.BevelTopDepth = 10】

Withステートメントで指定した
面取りの書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトの
BevelTopDepth【ベベルトップディップス】プロパティを使用して
面取りの奥行きを10ポイントに設定します。


9行目
【.BevelTopInset = 10】

Withステートメントで指定した
面取りの書式設定を表す
ThreeDFormat【スリーディフォーマット】オブジェクトの
BevelTopInset【ベベルトップインセット】プロパティを使用して
面取りの高さを10ポイントに設定します。


実行結果


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

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

フォローする

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