5

VBAを介して、指定されたY値に水平線を追加しようとしている折れ線グラフがあります。私はこのガイドに従っています。このガイドでは、既存のグラフに線を追加し、その種類を分散に変更することを提案しています。これにより、Excelはシリーズを2番目のX軸に自動的に配置します。その後、さらにフォーマットすることができます。

私の問題は、VBAでこれを行うときに、ラインをセカンダリX軸に切り替える方法がわからないことです。デフォルトでは、すべての新しい線は主X軸上にあります。

たとえばchrt、Chartオブジェクトであるとします。

' Enable secondary X axis (I think)
chrt.HasAxis(XlAxisType.xlCategory, XlAxisGroup.xlSecondary) = True

Dim se As Series
Set se = chrt.SeriesCollection.NewSeries
se.ChartType = xlXYScatterLinesNoMarkers

' Add a line at Y = 0
se.xValues = Array(0, 1)
se.values = Array(0, 0)

seでは、2次X軸に乗る方法は?

4

1 に答える 1

11

このリンクをExcel2003でたどり、マクロを記録しました。Excel 2007のチャートでは、マクロの記録に関してこのような不幸なケースがあることに注意してください。しかし、Excel2010では再び幸運に恵まれます。したがって、マクロに基づいてバージョンを作成してからコードをコピーする場合は、バージョンに注意してください...

シートとチャートの名前を自分に合わせて変更してください。

With Sheets(3).ChartObjects("Chart 1")
     .SeriesCollection(2).AxisGroup = xlSecondary
     .HasAxis(xlCategory, xlPrimary) = True
     .HasAxis(xlCategory, xlSecondary) = True
     .HasAxis(xlValue, xlPrimary) = True
     .HasAxis(xlValue, xlSecondary) = True
     .Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
     .Axes(xlCategory, xlSecondary).CategoryType = xlAutomatic
  End With
于 2013-01-13T13:21:43.977 に答える