[[20130619134808]] 『VBAで折れ線グラフの体裁を整えたい』(ロン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAで折れ線グラフの体裁を整えたい』(ロン)

いつもお世話になっています。

VBAで折れ線グラフを自動作成したのですが、
上限、下限のマーカーをなくして実線のみに変更したいです。

一度に範囲してしているのですが、それぞれの範囲を分けて
グラフ作成すればいいのでしょうか?

例:データ

   A    B    C    D
1 ロットNo. 上限  下限  実績
2  101    5    2    4.3
3  102    5    2    3.8
4  103    5    2    3.5
5  104    5    2    4.2

Sub Test()
Dim Target As Range
  Set Target = ActiveSheet.Range("A1:D6")
   ActiveChart.ChartType = xlLineMarkers
      With ActiveChart
        .SetSourceData Source:=Target, PlotBy:=xlColumns
        .HasTitle = True
        .Axes(xlCategory).AxisBetweenCategories = False
      End With
End Sub

こんな感じでグラフ化すると、それぞれの線にマーカーがつきました。
上限、下限を実線のみでマーカーをなくし、同じ色にしておきたいです。

よろしくお願いします。

Excel2007


こんな感じでどうでしょうか(マナ)

 Sub test2()
    Dim Target As Range

    Set Target = ActiveSheet.Range("A2:D6")

    With ActiveSheet.ChartObjects.Add(100, 100, 200, 200).Chart
        .ChartType = xlLineMarkers
        With .SeriesCollection.NewSeries
            .XValues = Target.Columns(1)
            .Values = Target.Columns(4)
        End With
        .HasTitle = True
        .Axes(xlCategory).AxisBetweenCategories = False
    End With

 End Sub

質問をよく読んでいませんでした。こっちでしょうか(マナ)

 Sub test3()
    Dim Target As Range
    Dim myChart As Chart
    Dim i As Long

    Set Target = ActiveSheet.Range("A2:D6")

    Set myChart = ActiveSheet.ChartObjects.Add(100, 100, 200, 200).Chart
    myChart.ChartType = xlLineMarkers
    For i = 1 To 3
        With myChart.SeriesCollection.NewSeries
            .XValues = Target.Columns(1)
            .Values = Target.Columns(i + 1)
        End With
    Next
    For i = 1 To 2
        With myChart.SeriesCollection(3)
            myChart.SeriesCollection(i).MarkerStyle = xlMarkerStyleNone
            myChart.SeriesCollection(i).Border.Color = .Border.Color
        End With
    Next
    myChart.HasTitle = True
    myChart.Axes(xlCategory).AxisBetweenCategories = False

 End Sub

マナさん

回答、ありがとうございます。

Set myChart = ActiveSheet.ChartObjects.Add(100, 100, 200, 200).Chart
この意味を教えて下さい。

それから、マクロを実行すると
実績の線がマーカーなしになって、下限の線がマーカー付きになってしまいます。
これはどこを修正すればいいでしょうか?

お手数をおかけしてすみません。
よろしくお願いします。

ロン


「ステップイン」で1行ずつ実行してみてください。わからなければ「ステップイ
ン VBA」あたりで検索です(マナ)

 >Set myChart = ActiveSheet.ChartObjects.Add(100, 100, 200, 200).Chart
 「ステップイン」で、アクティブシートに白紙のグラフが作成されるのが確認でき
ると思います。
(100, 100, 200, 200)は、グラフの(左位置,上位置,幅,高さ)を指定していま
す。
今回は適当な値を入れてます。

 これは、埋め込みグラフの場合で、グラフシートに作成の場合は
Set myChart = Charts.add
とします。
  
 下限がマーカー付きとなる理由は、わかりません。
「ステップイン」で気づくことがあるかもしれま
せん。試してみてください。
  
 なお、For i = 1 To 2のブロックですが、
今見返すと、With句の意味がないばかりか、わかりにくいので
↓と差し替えてください。こっちのほうが何をしているか理解しやすいかもしれません。
  
 For i = 1 To 2
    With myChart.SeriesCollection(i)
        .MarkerStyle = xlMarkerStyleNone
        .Border.Color = myChart.SeriesCollection(3).Border.Color
    End With
 Next
  
 系列1と系列2についてマーカーをなしに変更し
線の色は系列3と同じにしています。
これも「ステップイン」で実行すれば確認できると思います。
  

マナさん

ご教授ありがとうございました。
確認させていただきます。

少しずつですが、これからも勉強していきたいと思いますので
よろしくお願いします。

ロン


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.