[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
この意味を教えて下さい。
それから、マクロを実行すると
実績の線がマーカーなしになって、下限の線がマーカー付きになってしまいます。
これはどこを修正すればいいでしょうか?
お手数をおかけしてすみません。
よろしくお願いします。
ロン
>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.