シート選択用のタブに最初に表示されるシートを設定

広告

ワークブックに複数のシートが含まれている場合に、シートの下部にシート選択用のタブが表示されます。通常はインデックスが0のシートから並んで表示されますが、非常に多くのシートが含まれている場合、タブに全てを同時に表示できない場合があります。このような場合に、タブの表示する最初のシートのインデックスを指定することができます。

タブに表示される最初のシートのインデックスを指定するにはWorkbookインターフェースで定義されているsetFirstVisibleTabメソッドを使います。

void setFirstVisibleTab(int sheetIndex)

Sets the first tab that is displayed in the list of tabs in excel.

Parameters:
  sheetIndex - the first tab that to display in the list of tabs (0-based)

引数に指定するシートのインデックスを指定します。

使い方としては下記のようになります。

Workbook wb = new HSSFWorkbook();
Sheet sheet0 = wb.createSheet();
Sheet sheet1 = wb.createSheet();
Sheet sheet2 = wb.createSheet();

wb.setFirstVisibleTab(1);

上記の場合、インデックスが1のシートがタブの先頭に表示されます。

なおあくまでタブの先頭に表示されるシートを指定しているだけで、アクティブなシートに設定されるわけではありまん。

サンプルプログラム

実際に試してみましょう。

Sample9_1.java

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import java.io.*;

public class Sample9_1{
  public static void main(String[] args){
    Workbook wb = new HSSFWorkbook();

    for (int i = 0 ; i < 10 ; i++){
      wb.createSheet();
    }

    wb.setFirstVisibleTab(5);

    FileOutputStream out = null;
    try{
      out = new FileOutputStream("sample9_1.xls");
      wb.write(out);
    }catch(IOException e){
      System.out.println(e.toString());
    }finally{
      try {
        out.close();
      }catch(IOException e){
        System.out.println(e.toString());
      }
    }
  }
}

プログラムを実行すると10のシートを作成し、その中のインデックスが5のシートがタブの先頭に表示されるように設定します。では作成されたExcelファイルを開いてみます。

シート選択用のタブに最初に表示されるシートを設定

タブの先頭にはインデックス5のシートが表示されていることが確認できます。なおタブの横にある矢印を使ってタブに表示されるシートは前後に動かすことができます。

シート選択用のタブに最初に表示されるシートを設定

シート選択用のタブに最初に表示されるシートを設定

タブの先頭に表示されるインデックスを設定しても、アクティブなシートはデフォルトのインデックスが0のシートのままです。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。