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列挙型
    定数スタイル
    msoSoftEdgeTypeNone0ぼかしなし
    msoSoftEdgeType11
    msoSoftEdgeType22
    msoSoftEdgeType33
    msoSoftEdgeType44
    msoSoftEdgeType55
    msoSoftEdgeType66

タイプ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秒間表示して
図形が徐々に表示されるように表現します。


実行結果


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

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

フォローする

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