Excel VBA質問箱 IV

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

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


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

【15645】凡例の色を変えたい マリンバトル 04/7/1(木) 15:52 質問[未読]
【15648】Re:凡例の色を変えたい Jaka 04/7/1(木) 16:07 回答[未読]
【15651】Re:凡例の色を変えたい マリンバトル 04/7/1(木) 16:33 質問[未読]
【15654】Re:凡例の色を変えたい kein 04/7/1(木) 16:44 回答[未読]

【15645】凡例の色を変えたい
質問  マリンバトル E-MAIL  - 04/7/1(木) 15:52 -

引用なし
パスワード
   申し訳ありません。このようなこと聞かせてもらって良いのかわからないのですが、
宜しければ教えていただけませんでしょうか?

以下のようなグラフ生成マクロの凡例?というかグラフの色を変えたいと頼まれました。
素人なりに考えていろいろやってみたのですが、解決できません。
取得データとして凡例を増やせば勝手にExcel?が着色してくれるのですが、その色が見にくいのでなんとかしたいのです。
グラフデータ範囲を取得しているところで、色の指定ができるのかなと思うのですが
どうも手法がわかりません(T-T)

素人質問で気分を悪くされた方がいらっしゃいましたら申し訳ありません。


  'グラフデータ範囲
    With .SeriesCollection(1)
      .XValues = Worksheets(WorkbookName).Range(dat_range(0))  '年齢
      .Values = Worksheets(WorkbookName).Range(dat_range(loopcount))
      .Name = Worksheets(WorkbookName).Range(Gtitle(gcount)).Value
    End With
           
    
    If gcount = 1 Then
    .SeriesCollection.Add Source:= _
        Worksheets(WorkbookName).Range(dat_range(2))
   
    .SeriesCollection.Add Source:= _
        Worksheets(WorkbookName).Range(dat_range(3))

  'タイトル設定
    With .ChartTitle
      .Characters.Text = Worksheets(WorkbookName).Range("A1")"
      .AutoScaleFont = True
      .Font.Size = 14
    End With
    
  'X軸設定
    With .Axes(xlCategory, xlPrimary)
      .HasTitle = True
      .AxisTitle.Characters.Text = Worksheets(WorkbookName).Range("A4")
    End With
    With .Axes(xlCategory)
      .TickLabelSpacing = 5
      .TickMarkSpacing = 5
      With .TickLabels
        .Orientation = xlHorizontal
        .Font.Size = 9
      End With
      .AxisBetweenCategories = False
    End With
    
  'Y軸設定
    With .Axes(xlValue, xlPrimary)
      .HasTitle = True
      .AxisTitle.Characters.Text = "人数"
    End With
    With .Axes(xlValue)
      .MinimumScaleIsAuto = True
      .MaximumScale = GMScale(gcount)
      .MinorUnitIsAuto = True
      .MajorUnit = 5
      .Crosses = xlAutomatic
      .ReversePlotOrder = False
      .ScaleType = xlLinear
      .AxisTitle.Orientation = xlVertical
      .HasMajorGridlines = True
      With .TickLabels
        .Font.Size = 9
      End With
    End With
  End With

【15648】Re:凡例の色を変えたい
回答  Jaka  - 04/7/1(木) 16:07 -

引用なし
パスワード
   こんにちは。
ここが参考になりませんか?

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=8876;id=excel

【15651】Re:凡例の色を変えたい
質問  マリンバトル E-MAIL  - 04/7/1(木) 16:33 -

引用なし
パスワード
   ▼Jaka さん:
>こんにちは。
>ここが参考になりませんか?
>
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=8876;id=excel

Jaka様

ご返信ありがとうございます。
上記スレも参考にさせていただいたのですが、
↓のところで、色指定をしている というのはわかるのですが、

    With ActiveChart.SeriesCollection(1).Points(i).Interior
      If Range("A" & i).Value >= 30 Then
       .ColorIndex = 3

私が今編集している以下マクロのどの部分に指定すれば良いのか、ちょっとわからないのです。いろいろやってはいるのですが、いつもエラーになります(T-T)
お時間がありましたら、ヒントをいただけませんでしょうか?
ずうずうしいお願いでほんとにすいません。


  'グラフデータ範囲
    With .SeriesCollection(1)
      .XValues = Worksheets(WorkbookName).Range(dat_range(0))  '年齢
      .Values = Worksheets(WorkbookName).Range(dat_range(loopcount))
      .Name = Worksheets(WorkbookName).Range(Gtitle(gcount)).Value
    End With
           
    '凡例指定
    .SeriesCollection.Add Source:= _
        Worksheets(WorkbookName).Range(dat_range(2))
   
    .SeriesCollection.Add Source:= _
        Worksheets(WorkbookName).Range(dat_range(3))

  'タイトル設定
    With .ChartTitle
      .Characters.Text = Worksheets(WorkbookName).Range("A1")"
      .AutoScaleFont = True
      .Font.Size = 14
    End With
    
  'X軸設定
    With .Axes(xlCategory, xlPrimary)
      .HasTitle = True
      .AxisTitle.Characters.Text = Worksheets(WorkbookName).Range("A4")
    End With
    With .Axes(xlCategory)
      .TickLabelSpacing = 5
      .TickMarkSpacing = 5
      With .TickLabels
        .Orientation = xlHorizontal
        .Font.Size = 9
      End With
      .AxisBetweenCategories = False
    End With
    
  'Y軸設定
    With .Axes(xlValue, xlPrimary)
      .HasTitle = True
      .AxisTitle.Characters.Text = "人数"
    End With
    With .Axes(xlValue)
      .MinimumScaleIsAuto = True
      .MaximumScale = GMScale(gcount)
      .MinorUnitIsAuto = True
      .MajorUnit = 5
      .Crosses = xlAutomatic
      .ReversePlotOrder = False
      .ScaleType = xlLinear
      .AxisTitle.Orientation = xlVertical
      .HasMajorGridlines = True
      With .TickLabels
        .Font.Size = 9
      End With
    End With
  End With

【15654】Re:凡例の色を変えたい
回答  kein  - 04/7/1(木) 16:44 -

引用なし
パスワード
   Dim i As Integer
Dim FcAry As Variant, BcAry As Variant

FcAry = Array(3, 5, 6, 10)
BcAry = Array(?, ?, ?, ?)
With Worksheets(WorkbookName).ChartObjects(1).Chart.Legend
  For i = 1 To 4 '.LegendEntries.Count
    With .LegendEntries(i).LegendKey
     .MarkerForegroundColorIndex = FcAry(i - 1)
     .MarkerBackgroundColorIndex = BcAry(i - 1)
    End With 
  Next i
End With

というように、系列の数だけ配列(FcAry, BcAry)の要素を指定すれば良いでしょう。
要素の数値は、カラーパレットの番号です。

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