Excel VBA 図形(シェイプ)にぼかしを設定する

スポンサーリンク

図形(シェイプ)にぼかしを設定する方法

図形(シェイプ)にぼかしを設定するには、図形を表すShape【シェイプ】オブジェクトの
SoftEdge【ソフトエッジ】プロパティを使用してぼかしの書式を表すSoftEdgeFormat【ソフトエッジフォーマット】オブジェクトのType【タイプ】プロパティにぼかしを表す定数を指定して図形にぼかしの効果を設定します。

SoftEdge【ソフトエッジ】プロパティ

図形のぼかしの書式設定を表すSoftEdgeFormat【ソフトエッジフォーマット】オブジェクトを取得するには、Shape【シェイプ】オブジェクトのSoftEdge【ソフトエッジ】プロパティを使用します。

SoftEdge【ソフトエッジ】プロパティの書式と設定値の説明

オブジェクト.SoftEdge
【戻り値】SoftEdgeFormat【ソフトエッジフォーマット】オブジェクト

  • オブジェクト(必須)
    Worksheet【ワークシート】オブジェクトのShapes【シェイプス】プロパティ、またはShapes【シェイプス】コレクションのAddShapeメソッドで取得したぼかしを設定する図形を表すShape【シェイプ】オブジェクトを指定します。

Type【タイプ】プロパティ

ぼかし効果のタイプを設定するには、図形のぼかしの書式設定を表すSoftEdgeFormat【ソフトエッジフォーマット】オブジェクトのType【タイプ】プロパティを使用します。

Type【タイプ】プロパティの書式と設定値の説明

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

  • オブジェクト(必須)
    Shape【シェイプ】オブジェクトのSoftEdge【ソフトエッジ】プロパティで取得した図形のぼかしの書式設定を表すSoftEdgeFormat【ソフトエッジフォーマット】オブジェクトを指定します。
  • 設定値(必須)
    図形のぼかしのタイプをMsoSoftEdgeType列挙型の定数または値で指定します。

    MsoSoftEdgeType列挙型
    定数 スタイル
    msoSoftEdgeTypeNone 0 ぼかしなし
    msoSoftEdgeType1 1
    msoSoftEdgeType2 2
    msoSoftEdgeType3 3
    msoSoftEdgeType4 4
    msoSoftEdgeType5 5
    msoSoftEdgeType6 6

タイプ4のぼかしを設定した長方形を作成するコードと解説

Sub ぼかし()
Dim R As Range
Set R = Range("B2:E7")
With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height).SoftEdge
   .Type = 4
End With
End Sub
2行目【Dim R As Range】
図形の位置と大きさの基準となるセル範囲を格納する変数「R」をオブジェクト型(Range)で宣言します。


3行目【Set R = Range(“B2:E7”)】
B2セル~E7セルのセル範囲をオブジェクト型変数「R」にSetキーワードを使用して代入します。


4行目【With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height).SoftEdge】
Worksheet【ワークブック】オブジェクトの図形の集まりを表すShapes【シェイプス】コレクションの
AddShape【アドシェイプ】メソッドで長方形を作成し図形を表す、Shape【シェイプ】オブジェクトを取得します。
Shape【シェイプ】オブジェクトのSoftEdge【ソフトエッジ】プロパティでぼかしの書式設定を表す
SoftEdgeFormat【ソフトエッジフォーマット】オブジェクトを取得してwith【ウィズ】ステートメントで指定します。


5行目【.Type = 4】
SoftEdgeFormat【ソフトエッジフォーマット】オブジェクトのぼかしのタイプを設定するType【タイプ】プロパティに4を指定してぼかしを表示します。


実行結果


図形のぼかし状態を1秒おきに変化させるコードと解説

Sub ぼかし2()
Dim R As Range
Dim i As Integer
Set R = Range("B2:E7")
ActiveSheet.Shapes.AddShape 1, R.Left, R.Top, R.Width, R.Height
For i = 6 To 0 Step -1
With ActiveSheet.Shapes(1).SoftEdge
  .Type = i
Application.Wait Now + TimeValue("00:00:01")
End With
Next i
End Sub
2行目【Dim R As Range】
図形の位置や大きさの基準となるセル範囲を格納する変数「R」をオブジェクト型(Range)で宣言します。


3行目【Dim i As Integer】
繰り返し処理の中で、ぼかしのタイプの値を格納するカウンター変数「i」を整数型(Integer)で宣言します。


4行目【Set R = Range(“B2:E7”)】
B2セル~E7セルのセル範囲をオブジェクト変数「R」にSetキーワードを使用して代入します。


5行目【ActiveSheet.Shapes.AddShape 1, R.Left, R.Top, R.Width, R.Height】
Workbook【ワークブック】オブジェクトの図形の集まりを表すShapes【シェイプス】コレクションの
AddShape【アドシャイプ】メソッドで長方形を作成して図形を表す、Shape【シェイプ】オブジェクトを取得します。
With【ウィズ】ステートメントで指定したり変数に格納したりして、このShape【シャイプ】オブジェクトを直接、参照しないのでAddShapes【アドシェイプス】メソッドの引数にカッコは不要です。


6行目【For i = 6 To 0 Step -1】
For Next【フォアネクスト】ステートメントを使用して、繰り返し処理の始まりです。カウンター変数「i」には6~0の値を順次代入します。Step【ステップ】には加算値を-1に設定します。


7行目【With ActiveSheet.Shapes(1).SoftEdge】
WorkSheet【ワークシート】オブジェクトのShapes【シェイプス】プロパティで引数Index【インデックス】に1を指定してシートにある1番目のShape【シェイプ】オブジェクトを参照します。そのShape【シェイプ】オブジェクトのSoftEdge【ソフトエッジ】プロパティでぼかしの書式設定を表す
SoftEdgeFormat【ソフトエッジフォーマット】オブジェクトを取得して、With【ウィズ】ステートメントで指定します。


8行目【.Type = i】
With【ウィズ】ステートメントで指定したぼかしの書式設定を表すSoftEdgeFormat【ソフトエッジフォーマット】オブジェクトのTypy【タイプ】プロパティにぼかしのタイプを設定します。設定値はカウンター変数iで繰り返し処理の中で6~0に順次変化します。


9行目【Application.Wait Now + TimeValue(“00:00:01”)】
Application【アプリケーション】オブジェクトのWait【ウエイト】メソッドを使用して実行中のマクロを1秒間停止してTypy【タイプ】プロパティで指定したぼかしの図形を1秒間表示して図形が徐々に表示されるように表現します。


実行結果


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

スポンサーリンク

関連記事・広告