シートの追加
Excelワークブックオブジェクトが ExcelWB とした場合、ワークシート追加処理は下記関数を使います。
ExcelWB.Worksheets.Add(Before, After, Count);
Beforeを指定する場合は、指定したワークシートの前にシートを追加、
Afterを指定する場合は、指定したワークシートの後にシートを追加、
Countは追加するシート数です。
【例】シートの追加 =画面=
以前ご紹介した「Excel入力」画面に、新たにワークシートの追加・削除機能を下記のように追加しました。
機能としては、選択したシートの前後を選択できる事と、シート数を指定できます。
【例】シートの追加 =ソースコード=
「シート追加」ボタンを押した時の処理内容は下記の通りです。長々と書きましたが、シートの追加処理は最後の方に記載している「ExcelWB.Worksheets.Add」処理です。
GetExcelInfo() と DispExcelInfo(0) については、「Excel情報の取得」をご参照ください。
private void cmdAddSheet_Click(object sender, EventArgs e)
{
/* シート数 */
int intAddCount = 1;
/* コンボボックスの情報からExcelブック名を取得する */
TargetFile = cmbExcelBook.Text;
/* リストボックスの情報からExcelシート名を取得する */
if (lstExcelSheet.SelectedItems.Count == 0)
{
MessageBox.Show("追加する前後いずれかのシートを選択して下さい");
return;
}
TargetSheet = lstExcelSheet.SelectedItem.ToString();
/* テキストボックスの情報から追加するExcelシート数を取得する */
if (!int.TryParse(txtAddSheetCNT.Text, out intAddCount))
{
MessageBox.Show("追加するシート数に誤った値(" + txtAddSheetCNT.Text + ")が入力されています");
return;
}
/* Excelオブジェクトの取得 */
ExcelWB = ExcelApp.Workbooks.Item[TargetFile];
ExcelWS = (Worksheet)ExcelWB.Sheets[TargetSheet];
/*-------------------------*
* Excelシートを追加する
*-------------------------*/
/* 選択したシートの前に追加 */
if (rdoBeforeSheet.Checked == true)
{
ExcelWB.Worksheets.Add(ExcelWS, Type.Missing, intAddCount);
}
/* 選択したシートの後に追加 */
else if (rdoAfterSheet.Checked == true)
{
ExcelWB.Worksheets.Add(Type.Missing, ExcelWS, intAddCount);
}
// Excelファイルの情報取得
GetExcelInfo();
// Excel情報の表示
DispExcelInfo(0);
}
{
/* シート数 */
int intAddCount = 1;
/* コンボボックスの情報からExcelブック名を取得する */
TargetFile = cmbExcelBook.Text;
/* リストボックスの情報からExcelシート名を取得する */
if (lstExcelSheet.SelectedItems.Count == 0)
{
MessageBox.Show("追加する前後いずれかのシートを選択して下さい");
return;
}
TargetSheet = lstExcelSheet.SelectedItem.ToString();
/* テキストボックスの情報から追加するExcelシート数を取得する */
if (!int.TryParse(txtAddSheetCNT.Text, out intAddCount))
{
MessageBox.Show("追加するシート数に誤った値(" + txtAddSheetCNT.Text + ")が入力されています");
return;
}
/* Excelオブジェクトの取得 */
ExcelWB = ExcelApp.Workbooks.Item[TargetFile];
ExcelWS = (Worksheet)ExcelWB.Sheets[TargetSheet];
/*-------------------------*
* Excelシートを追加する
*-------------------------*/
/* 選択したシートの前に追加 */
if (rdoBeforeSheet.Checked == true)
{
ExcelWB.Worksheets.Add(ExcelWS, Type.Missing, intAddCount);
}
/* 選択したシートの後に追加 */
else if (rdoAfterSheet.Checked == true)
{
ExcelWB.Worksheets.Add(Type.Missing, ExcelWS, intAddCount);
}
// Excelファイルの情報取得
GetExcelInfo();
// Excel情報の表示
DispExcelInfo(0);
}
シートの削除
Excelワークシートオブジェクトが ExcelWS とした場合、ワークシート削除処理は下記関数を使います。
ExcelWS.Delete();
【例】シートの削除 =ソースコード=
「シート削除」ボタンを押した時の処理内容は下記の通りです。
private void cmdDelSheet_Click(object sender, EventArgs e)
{
/* コンボボックスの情報から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];
// Excelシートの削除
ExcelWS.Delete();
// Excelファイルの情報取得
GetExcelInfo();
// Excel情報の表示
DispExcelInfo(0);
}
{
/* コンボボックスの情報から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];
// Excelシートの削除
ExcelWS.Delete();
// Excelファイルの情報取得
GetExcelInfo();
// Excel情報の表示
DispExcelInfo(0);
}