|
追加します。
なぜ標準グラフが折れ線等の場合だと期待する結果にならないか、
具体例で説明します。
↓のアップローダにグラフソースのデータをアップしてます。
ht tp://www.uploda.org/uporg1697297.zip.html
このデータのA列のデータをグラフの横軸、
B列のデータをグラフの縦軸に設定します。
グラフ描写のためのソースは以下になります。
-----------------------------------
With ActiveSheet.ChartObjects.Add(gr.Left, gr.Top, gr.Width, gr.Height)
.Name = "グラフ1"
.Chart.SetSourceData SourceRange
.Chart.ChartType = xlXYScatterSmoothNoMarkers
.Chart.HasTitle = False
.Chart.HasLegend = False
.Chart.Axes(Type:=xlValue).HasTitle = True
.Chart.Axes(Type:=xlValue).AxisTitle.Text = "スペクトル"
.Chart.Axes(Type:=xlValue).MaximumScale = MaxValue
.Chart.Axes(Type:=xlValue).MinimumScale = 0
.Chart.Axes(Type:=xlValue).CrossesAt = 0
.Chart.Axes(Type:=xlValue).MajorUnit = (MaxValue / 10)
.Chart.Axes(Type:=xlValue).TickLabels.NumberFormat = "0.0E+00"
.Chart.Axes(Type:=xlCategory).HasTitle = True
.Chart.Axes(Type:=xlCategory).AxisTitle.Text = "周波数"
.Chart.Axes(Type:=xlCategory).MinimumScale = 0.001
.Chart.Axes(Type:=xlCategory).MaximumScale = 100.1
.Chart.Axes(Type:=xlCategory).Crosses = xlAxisCrossesMinimum
.Chart.Axes(Type:=xlCategory).ScaleType = xlScaleLogarithmic
.Chart.Axes(Type:=xlCategory).LogBase = 10
End With
ActiveSheet.ChartObjects("グラフ1").Activate
With ActiveChart.SeriesCollection(1).Border
.ColorIndex = 1
.Weight = xlThin
End With
-----------------------------------
グラフ描写部のソースは同一なのですが、
標準グラフの設定が「散布図(平滑線)」の場合は、横軸の周波数がちゃんと表示されますが、
標準グラフの設定が「散布図以外」になっていると、横軸が1からの部分しか船が描写されません。
また、線の太さ、色の設定もデフォルトになってしまいます。
-------------------------
.ColorIndex = 1
.Weight = xlThin
-------------------------
の部分で設定しているにも関わらずです。
どうしてこうなるか皆目見当が付かないのが、正直なところです。
最初の投稿に書いたように、「標準グラフの設定」を「散布図(平滑線)」に設定すれば、ちゃんとグラフが出るため、
VBA上から標準グラフの設定ができればいいな、と思った次第です。
根本的な解決法(なぜグラフが出ないか)もわかる方がいらっしゃいましたら、
こちらについてもご教授いただければ幸いです。
長文失礼いたしました。
よろしくお願いいたします。
|
|