[編集済み] OK、ちょっと遊んでみたところ、縦軸と横軸の範囲を設定する方法がわかりました。これはExcel 2010で動作しています。
ここでは、ページ上のすべてのグラフをクリアして、新しいグラフを作成します (_resultsSheet は Excel.Worksheet です)。
var resultCharts = (ChartObjects)_resultsSheet.ChartObjects();
foreach (ChartObject ch in resultCharts)
{
ch.Delete();
}
ChartObject resultChart = resultCharts.Add(150, 40, 300, 200);
_resultChartPage = resultChart.Chart;
次に、ソースを設定します。定義済みの範囲の固定値を使用しました。ソースをスキャンして、実際の最小値と最大値を見つけることができます。
_resultChartRange = _resultsSheet.get_Range("J5", "K15");
_resultChartPage.SetSourceData(_resultChartRange);
_resultChartPage.ChartType = Excel.XlChartType.xlXYScatterLines;
_resultChartPage.HasLegend = false;
垂直軸の設定は次のとおりです。
Axis vertAxis = (Axis)resultChart.Chart.Axes(XlAxisType.xlValue, XlAxisGroup.xlPrimary);
vertAxis.HasMajorGridlines = true; // change this to whatever you wish
vertAxis.HasTitle = true;
vertAxis.AxisTitle.Text = "up the side";
vertAxis.MaximumScaleIsAuto = false;
vertAxis.MaximumScale = 500; // you can pick this based on your input
vertAxis.MinimumScaleIsAuto = false;
vertAxis.MinimumScale = 5;
今度はもう一方の軸です。ここで、固定時間を使用したことに注意してください。時間を軸目盛に変換するには、24 時間の 10 進数を 24 で割った値を使用します。午後 9 時 30 分は 21 時 30 分、つまり 21.5 時間です。int を使用する場合に備えて、(double) キャストを忘れないでください。
Axis horizAxis = resultChart.Chart.Axes(XlAxisType.xlCategory, XlAxisGroup.xlPrimary);
horizAxis.MaximumScaleIsAuto = false;
horizAxis.MaximumScale = (double)21.5 / 24; // 9:30 pm
horizAxis.MinimumScaleIsAuto = false;
horizAxis.MinimumScale = (double)13 / 24; // 1:00 pm
horizAxis.HasTitle = true;
horizAxis.AxisTitle.Text = "across the bottom";
そして「見たい」人のために:
_resultsSheet.Activate();
_workBook.Application.Visible = true;