Execl2007の名前を付けた範囲にVBAで斜線を引く(罫線ではなく図形で) | えちゆちのめもめも

えちゆちのめもめも

覚え書きです。

掲題の件。最初に罫線で斜線引こうかと思ったら、名前付けた範囲の各セルごとに斜線が引かれてしまった...orz。

というわけで調べてみると、図形の直線で斜線を引かにゃあならんようだ。で、以下、取り敢えず動いたんでメモ。

Private Sub test() 

    With Sheet1
    
        '挿入した図形の線を消す(手抜き)
        On Error Resume Next
    
        .Shapes("line_0").Delete
        
        .Shapes("line_1").Delete
    
        Err.Clear: On Error GoTo 0
        
        '名前を付けた範囲をRangeオブジェクト変数にセット
        Dim r As Range: Set r = .Range("linetest")
        
        '右下がりの直線図形を挿入する
        With .Shapes.AddLine(r.Left, r.Top, r.Left + r.Width, r.Top + r.Height)

            .Line.ForeColor.RGB = vbBlack
            
            .Name = "line_0"

        End With

        '右上がりの直線図形を挿入する
        With .Shapes.AddLine(r.Width + r.Left, r.Top, r.Left, r.Top + r.Height)

            .Line.ForeColor.RGB = vbBlack
            
            .Name = "line_1"

        End With

        'オブジェクト変数の解放
        Set r = Nothing

    End With

End Sub

いじょ。