【C#】Excel操作:シートの追加・削除


 シートの追加


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);
}



 シートの削除


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);
}


管理人 について

趣味:映画鑑賞・音楽鑑賞・ゲーム・旅行 仕事:会社員(IT関連)
カテゴリー: Excel操作, システム開発 パーマリンク

コメントを残す