|
▼Imai さん:
>オートシェイプを使って横棒で長さを表示するようにしていきたいのですが
> (いわば棒グラフ的)、Cells(6,10)の数字を元にプラスとマイナスに出したい
> のですが、マイナス方向が出ません。
>そして、更に、先に書かれたシェイプを削除する方法も分からず、
>オートシェイプが何重にも重なってしまいます。直し方を教えてください。
削除の方法は、図形を挿入したら、名前を付けておけば、
つぎに描画するとき、その名前の図形を削除すればいいですよね?
それから、どのイベントを使うか、ですが、
[J6]セルの値が変化したら、ということで Changeイベントではいかがですか?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "J6" Then Exit Sub
On Error Resume Next
Me.Shapes("myBar").Delete '「myBar」という名前の図形を消す
On Error GoTo 0
Dim Value
Value = Range("J6").Value * 0.2
Select Case Value
Case Is > 0
With Range("J7")
With Me.Shapes.AddShape(msoShapeRectangle, _
.Left, .Top, Value, 14)
.Fill.ForeColor.SchemeColor = 3
.Name = "myBar"
End With
End With
Case Is < 0 'マイナスの場合
With Range("J7")
With Me.Shapes.AddShape(msoShapeRectangle, _
.Left + Value, .Top, -Value, 14)
.Fill.ForeColor.SchemeColor = 5
.Name = "myBar"
End With
End With
End Select
End Sub
|
|