【例】グラフ作成 =画面=
以前ご紹介した「グラフ作成」画面に、新たにグラフ変更機能を下記のように追加しました。
【例】グラフ・タイトルの変更する =ソースコード=
グラフ・タイトルの変更をするには下記のように記述します。
ポイントは、Excel上にあるチャートオブジェクトを取得する事です。
/* コンボボックスの情報からExcelブック名を取得する */
TargetFile = cmbExcelBook.Text;
/* リストボックスの情報からExcelシート名を取得する */
if (lstExcelSheet.SelectedItems.Count == 0)
{
MessageBox.Show("書き込むシートを選択して下さい");
return;
}
TargetSheet = lstExcelSheet.SelectedItem.ToString();
/* Excelオブジェクトの取得 */
ExcelWB = ExcelApp.Workbooks.Item[TargetFile];
ExcelWS = (Worksheet)ExcelWB.Sheets[TargetSheet];
/* 対象ワークシート上のグラフオブジェクト */
ChartObjects ChartObjs = (ChartObjects)ExcelWS.ChartObjects(Type.Missing);
/* 対象グラフオブジェクト */
ChartObject ChartObj;
/* グラフ数分ループする(開始は1から) */
for (int i = 1; i <= ChartObjs.Count; i++)
{
/* グラフを取得する */
ChartObj = (ChartObject)ExcelWS.ChartObjects(i);
/* Chart情報を取得する */
Chart ObjChart = ChartObj.Chart;
/* ChartTitle情報を取得する */
ChartTitle ChtTitle = ObjChart.ChartTitle;
/* チャートのタイトル・種類を設定 */
if (rdoColumn.Checked == true)
{
ChtTitle.Text = "縦棒";
ObjChart.ChartType = XlChartType.xlColumnStacked;
}
if (rdoLine.Checked == true)
{
ChtTitle.Text = "折れ線";
ObjChart.ChartType = XlChartType.xlLine;
}
if (rdoBar.Checked == true)
{
ChtTitle.Text = "横棒";
ObjChart.ChartType = XlChartType.xlBarStacked;
}
}
TargetFile = cmbExcelBook.Text;
/* リストボックスの情報からExcelシート名を取得する */
if (lstExcelSheet.SelectedItems.Count == 0)
{
MessageBox.Show("書き込むシートを選択して下さい");
return;
}
TargetSheet = lstExcelSheet.SelectedItem.ToString();
/* Excelオブジェクトの取得 */
ExcelWB = ExcelApp.Workbooks.Item[TargetFile];
ExcelWS = (Worksheet)ExcelWB.Sheets[TargetSheet];
/* 対象ワークシート上のグラフオブジェクト */
ChartObjects ChartObjs = (ChartObjects)ExcelWS.ChartObjects(Type.Missing);
/* 対象グラフオブジェクト */
ChartObject ChartObj;
/* グラフ数分ループする(開始は1から) */
for (int i = 1; i <= ChartObjs.Count; i++)
{
/* グラフを取得する */
ChartObj = (ChartObject)ExcelWS.ChartObjects(i);
/* Chart情報を取得する */
Chart ObjChart = ChartObj.Chart;
/* ChartTitle情報を取得する */
ChartTitle ChtTitle = ObjChart.ChartTitle;
/* チャートのタイトル・種類を設定 */
if (rdoColumn.Checked == true)
{
ChtTitle.Text = "縦棒";
ObjChart.ChartType = XlChartType.xlColumnStacked;
}
if (rdoLine.Checked == true)
{
ChtTitle.Text = "折れ線";
ObjChart.ChartType = XlChartType.xlLine;
}
if (rdoBar.Checked == true)
{
ChtTitle.Text = "横棒";
ObjChart.ChartType = XlChartType.xlBarStacked;
}
}