'グラフのバーをグループ単位で色分け '大前提:実行前に対象のグラフが選択されていること Sub Set_Color_Bar() Dim i As Integer, N As Integer 'バーの数分だけループ(この例では13個) For i = 1 To ActiveChart.SeriesCollection.Count N = Val(Right(ActiveChart.SeriesCollection(i).Name, 2)) '何番目のバーを処理しているか If i < 5 Then '最初の4本までは青系のバーにする Bar_attr i, 33 ElseIf i < 9 Then '最初の5~8本は黄系のバーにする Bar_attr i, 6 Else '最初の9本目以降は紫系のバーにする Bar_attr i, 7 End If Next 'おまけ 'ActiveChart.SeriesCollection(i).Name 'これには「WK01」などの凡例の名称が入る End Sub '指定バーの色を変更 Sub Bar_attr(bar As Integer, c As Integer) '何番目のバーか、色番号 On Error GoTo pass '対象のバーを選択 ActiveChart.SeriesCollection(bar).Select 'グラデーションセット Selection.Fill.OneColorGradient Style:=msoGradientVertical, Variant:=4, Degree:=0.231372549019608 Selection.Fill.Visible = True '色をセット Selection.Fill.ForeColor.SchemeColor = c pass: On Error GoTo 0 End Sub