[[20150718062849]] 『図形の線の長さ指定』(VBシロウト) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『図形の線の長さ指定』(VBシロウト)

図形で一定の長さ線を引くマクロを教えてください。
一定の長さとは、セルの1列幅(たとえば1列が1.75(19ピクセル))の複数倍の長さとしたいです。
 どこかのセル(たとえばセルD1)で、列幅とその倍数から線の長さを計算せておいて、
この長さで→の線を引くマクロを教えてください。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 適当に直線を引く操作をマクロ記録しますと

Sub Macro1()
'
' Macro1 Macro
'

'

    ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 108.75, 33.75, 269.25, _
        33.75).Select
End Sub

 こんなコードが生成されますね。
 で、AddConnector をヘルプで調べますと、引数の解説がでています。
 それらから、マクロ記録で生成されたコードを以下のように書き直してみます。

Sub Test()

    Dim h As Double
    Dim l As Double
    Dim w As Double
    Dim t As Double
    Dim bX As Double
    Dim eX As Double
    Dim bY As Double
    Dim eY As Double

    With Range("D1")
        t = .Top
        l = .Left
        h = .Height
        w = .Width
    End With

    bY = t + h / 2
    eY = bY
    bX = l
    eX = bX + w * 4

    ActiveSheet.Shapes.AddConnector msoConnectorStraight, bX, bY, eX, eY

End Sub

 そうすると、1行目の真ん中の高さで、D1のセル幅の4倍の直線がひかれますね。

(β) 2015/07/18(土) 07:19


早々の返答ありがとうございます。
ついでにもう一つ。
4倍をあるセル(たとえばセル番号A4)にある数値にするにはどうしたらいいでしょうか。
(VBシロウト) 2015/07/18(土) 08:21

 横から失礼します。

 >* 4

 * Activesheet.Range("A4").Value

 のようにします。

 ※A4が数値じゃないときのエラー処理は考慮していません。
(のらじろう) 2015/07/18(土) 10:07

 To のらじろうさん

 フォロー深謝です。

(β) 2015/07/18(土) 10:17


のらじろうさん、βさん
 解決できました。
 ありがとうございました。<m(__)m>
(VBシロウト) 2015/07/18(土) 10:56

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.