Excel VBA質問箱 IV

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

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


12742 / 13646 ツリー ←次へ | 前へ→

【8876】グラフの色を変えるには? 24syan 03/11/7(金) 0:13 質問
【8887】Re:グラフの色を変えるには? Jaka 03/11/7(金) 13:10 回答
【8913】Re:グラフの色を変えるには? 24syan 03/11/8(土) 0:35 質問
【8914】Re:グラフの色を変えるには? kein 03/11/8(土) 2:50 回答
【8919】Re:グラフの色を変えるには? 24syan 03/11/8(土) 18:17 お礼

【8876】グラフの色を変えるには?
質問  24syan  - 03/11/7(金) 0:13 -

引用なし
パスワード
   棒グラフを作成したのですが、セル内の値がある一定の値を超えた場合
にグラフの色を変えるにはどうしたらよいのでしょうか。
数値1を超えたら「黄色」、数値2を超えたら「赤」といった具合に
できるといいのですが。

データ 
a 10   数値1「30」
b 20   数値2「40」
c 25
d 40
e 50

数値1及び2はセル内で変更したいのですが。

よろしくお願いします。

【8887】Re:グラフの色を変えるには?
回答  Jaka  - 03/11/7(金) 13:10 -

引用なし
パスワード
   Sub vivi()
  Dim LastRow As Long, i As Long, Acad As String
  LastRow = 5
  Application.ScreenUpdating = False
  Acad = ActiveCell.Address
  ActiveSheet.ChartObjects("グラフ 1").Activate
  For i = 1 To LastRow
    With ActiveChart.SeriesCollection(1).Points(i).Interior
      If Range("A" & i).Value >= 30 Then
       .ColorIndex = 3
      ElseIf Range("A" & i).Value >= 20 Then
       .ColorIndex = 6
      Else
       .ColorIndex = 17
      End If
    End With
  Next
  Range(Acad).Select
  Application.ScreenUpdating = True
End Sub

【8913】Re:グラフの色を変えるには?
質問  24syan  - 03/11/8(土) 0:35 -

引用なし
パスワード
   Jaka さん
レス有難うございます。
棒グラフのSeriesCollection(1)の色が
ColorIndex = 3,7と変わるってことですよね(違っていたらすみません)
With ActiveChart.SeriesCollection(1).Points(i).Interiorの行でエラーに
なってしまいます。なぜかわかりません。
VBAを始めたばかりで初心者であることを先に述べるべきでした。
どうぞ、ご教授くださいますようお願いします。


▼Jaka さん:
>Sub vivi()
>  Dim LastRow As Long, i As Long, Acad As String
>  LastRow = 5
>  Application.ScreenUpdating = False
>  Acad = ActiveCell.Address
>  ActiveSheet.ChartObjects("グラフ 1").Activate
>  For i = 1 To LastRow
>    With ActiveChart.SeriesCollection(1).Points(i).Interior
>      If Range("A" & i).Value >= 30 Then
>       .ColorIndex = 3
>      ElseIf Range("A" & i).Value >= 20 Then
>       .ColorIndex = 6
>      Else
>       .ColorIndex = 17
>      End If
>    End With
>  Next
>  Range(Acad).Select
>  Application.ScreenUpdating = True
>End Sub

【8914】Re:グラフの色を変えるには?
回答  kein  - 03/11/8(土) 2:50 -

引用なし
パスワード
   Jakaさんのコードをお借りして・・

Sub vivi()
  Dim LastP As Long, i As Long, CInd As Long
  Dim Sh As Worksheet, CSer As Series

  Application.ScreenUpdating = False
  Set Sh = ActiveSheet
  Set CSer = Sh.ChartObjects("グラフ 1") _
  .Chart.SeriesCollection(1)
  LastP = CSer.Points.Count
  For i = 1 To LastP
    Select Case Sh.Cells(i, 1).Value
     Case Is >= 30
       CInd = 3
     Case Is >= 20
       CInd = 6
     Case Else
       CInd = 17
    End Select
    CSer.Points(i).Interior.ColorIndex = CInd   
  Next i
  Application.ScreenUpdating = True
  Set CSer = Nothing: Set Sh = Nothing
End Sub

【8919】Re:グラフの色を変えるには?
お礼  24syan  - 03/11/8(土) 18:17 -

引用なし
パスワード
   Jakaさん、kein さん
ありがとうございます。
ご教授いただいたマクロをVBAの本片手にいろやってみたところ
なんとグラフの色をかえることができました。
(ほとんど、そのまま使わせてもらいましたけど...)
拡張していろいろ試してみたいと思います。
今回は本当にありがとうございました。

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