Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


14318 / 76738 ←次へ | 前へ→

【67917】Re:オートシェイプのマイナス作成について
発言  kanabun  - 11/1/17(月) 0:24 -

引用なし
パスワード
   ▼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

5 hits

【67915】オートシェイプのマイナス作成について Imai 11/1/16(日) 23:43 質問
【67916】Re:オートシェイプのマイナス作成について 山猿 11/1/17(月) 0:01 発言
【67917】Re:オートシェイプのマイナス作成について kanabun 11/1/17(月) 0:24 発言
【67919】Re:オートシェイプのマイナス作成について kanabun 11/1/17(月) 10:02 発言
【67923】Re:オートシェイプのマイナス作成について Imai 11/1/17(月) 12:05 質問

14318 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free