ブックとワークシートの操作 — 追加・削除・移動・リネーム

level: basic / verified: 2026-10-01 / 4言語タブ対応 / English

やりたいこと

1 つのブックの中でワークシートを追加・削除・移動・リネームし、 インデックスでシートを辿ったり、開いたときに表示されるシート(アクティブタブ)を制御する。

対象メソッド

メソッド所属説明
addWorkSheet(sheetName, position?)WorkBookワークシートを追加します。
deleteWorkSheet(sheetName)WorkBookワークシートを削除します。
moveSheet(sheetName, position)WorkBookワークシートを移動します。
openWorkSheet(sheetName)WorkBookワークシートを名前で開きます。
openWorkSheetByIndex(sheetIndex)WorkBookワークシートをインデックスで開きます。
getSheetCount()WorkBookワークシート数を取得します。
getSheetNumber(sheetName)WorkBookワークシートのシート番号を取得します。
getName() / setName(name)WorkSheetシート名称の取得 / 設定を行います。
isActive() / activate(isActive)WorkSheetアクティブタブ(起動時の表示項目)の取得 / 設定を行います。

コード

実行結果:

// sheets.js — シートの追加・移動・リネーム・削除と、インデックスアクセス
const { nodeosbxl } = require("nodeosbxl");

const app = new nodeosbxl.App();
const wb = app.createWorkBook("sheets.xlsx");

// インデックスは 1 始まり。1..getSheetCount() を順に開いて名前を並べる
const show = (label) => {
    const names = [];
    for (let i = 1; i <= wb.getSheetCount(); i++) {
        names.push(wb.openWorkSheetByIndex(i).getName());
    }
    console.log(`${label} count=${wb.getSheetCount()} [${names.join(", ")}]`);
};

show("[1] 新規作成直後        :");

wb.addWorkSheet("集計");                       // position 省略 → 末尾に追加
show("[2] addWorkSheet(集計)  :");

wb.addWorkSheet("受注", 1);                    // position=1 → 先頭に挿入
show("[3] addWorkSheet(受注,1):");

wb.moveSheet("受注", 3);                       // 3 番目へ移動
show("[4] moveSheet(受注,3)   :");

const ws = wb.openWorkSheet("受注");
console.log("[5] getName() =", ws.getName(), "/ getSheetNumber(受注) =", wb.getSheetNumber("受注"));
ws.getRange("A1:A1").setValue("受注データ");

wb.openWorkSheet("Sheet1").setName("明細");     // リネーム
show("[6] setName(明細)       :");

// --- アクティブタブ(ブックを開いたときに手前に表示されるシート)---
console.log("[7] isActive: 集計 =", wb.openWorkSheet("集計").isActive(),
            "/ 明細 =", wb.openWorkSheet("明細").isActive());
wb.openWorkSheet("集計").activate(true);   // 他のシートのアクティブは自動的に解除されます
console.log("    activate後: 集計 =", wb.openWorkSheet("集計").isActive(),
            "/ 明細 =", wb.openWorkSheet("明細").isActive());

// --- 削除 ---
wb.addWorkSheet("一時");
wb.deleteWorkSheet("一時");
show("[8] deleteWorkSheet(一時):");

wb.save();
wb.close();

// --- 開き直して確認 ---
const wb2 = app.openWorkBook("sheets.xlsx");
const names = [];
for (let i = 1; i <= wb2.getSheetCount(); i++) names.push(wb2.openWorkSheetByIndex(i).getName());
console.log("[終] シート構成:", names.join(", "));
console.log("     受注!A1 =", wb2.openWorkSheet("受注").getRange("A1:A1").getValue()["A1"]);
wb2.close();
[1] 新規作成直後        : count=1 [Sheet1]
[2] addWorkSheet(集計)  : count=2 [Sheet1, 集計]
[3] addWorkSheet(受注,1): count=3 [受注, Sheet1, 集計]
[4] moveSheet(受注,3)   : count=3 [Sheet1, 集計, 受注]
[5] getName() = 受注 / getSheetNumber(受注) = 3
[6] setName(明細)       : count=3 [明細, 集計, 受注]
[7] isActive: 集計 = false / 明細 = true
    activate後: 集計 = true / 明細 = false
[8] deleteWorkSheet(一時): count=3 [明細, 集計, 受注]
[終] シート構成: 明細, 集計, 受注
     受注!A1 = 受注データ

解説

注意点

関連