Excel VBAで図形(シェイプ)の位置・線色・塗りつぶしの色等を設定する

Excel VBAで図形の位置・線色・塗りつぶしの色等を設定するには、ShapeRangeオブジェクトを使用します。




Homeに戻る > Excel 図形のTipsへ

使用しているプロパティです。
For Each を使い総当りで図形の名前を調べ、下のプロパティで設定しています。
  • 図形の名前: Name
  • 表示: Visible
  • 左位置: Left
  • 上位置: Top
  • 幅: Width
  • 高さ: Height
  • 角度: Rotation
  • 線の太さ: Line.Weight
  • 点線のスタイル: Line.DashStyle
  • 線種: Line.Style
  • 線の透明度: Line.Transparency
  • 線の表示: Line.Visible
  • 線色: Line.ForeColor.RGB
  • 塗りつぶし: Fill.Visible
  • 塗りの透明度: Fill.Transparency
  • 塗りつぶし色: Fill.ForeColor.RGB

図形に関連する「オートシェイプのクリックイベントでシェイプの名前を取得」も掲載していますので、参考にしてください。



ShapeRangeオブジェクトを使用し、図形の位置・線色・塗りつぶしの色等を設定するVBA

Excel VBA シートコード

作成したExShapeプロシージャの説明

  1. For Eachを使い総当たりで図形の名前を取得します。
  2. 名前が「Rectangle 1」ならば、次のプロパティを設定します。
  3. Left・Topで図形の位置をセットします。
  4. Width・Heightで図形のサイズをセットします。
  5. Line.Weightで線の太さをセットします。
  6. Line.DashStyleで線のスタイル(実線や点線など)をセットします。
  7. Line.Styleで線種(一重線や二重線など)をセットします。
  8. Line.Transparencyで線の透明度をセットします。
  9. Line.Visibleで線の表示をセットします。
  10. Line.ForeColor.RGBで線色をセットします。
  11. Fill.Visibleで塗りつぶしをセットします。
  12. Fill.Transparencyで塗りの透明度をセットします。
  13. Fill.ForeColor.RGBで塗りつぶし色をセットします。
Private Sub ExShape()
    Dim t As Object
    Dim s As String
    
    For Each t In Sheets("Sheet3").Rectangles
        '図形の名前
        s = t.Name
        
        If s = "Rectangle 1" Then
            '表示
            t.Visible = True
            
            '位置
            t.ShapeRange.Left = 132
            t.ShapeRange.Top = 135
            t.ShapeRange.Width = 49.5
            t.ShapeRange.Height = 88.5
            '角度
            t.ShapeRange.Rotation = 0
            
            '線 太さ
            t.ShapeRange.Line.Weight = 0.75
            '線のスタイル
            t.ShapeRange.Line.DashStyle = msoLineSolid
            '線種
            t.ShapeRange.Line.Style = msoLineSingle '1本線
            '透明度
            t.ShapeRange.Line.Transparency = 0  '0.0 (不透明) ~ 1.0 (透明)
            '線の表示
            t.ShapeRange.Line.Visible = True
            '線色
            t.ShapeRange.Line.ForeColor.RGB = RGB(255, 0, 0)
            
            '塗りつぶし
            t.ShapeRange.Fill.Visible = True
            '透明度
            t.ShapeRange.Fill.Transparency = 0
            '塗りつぶし色
            t.ShapeRange.Fill.ForeColor.RGB = RGB(255, 210, 1)
            
            Exit For
        
        End If
    Next
   
End Sub


Excel VBAの実行結果

開始前は枠線だけです。

実行前の図形

実行結果

位置・サイズ・色などが変更できました。

実行結果の図形

Homeに戻る > Excel 図形のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved