Excel JavaScript API を使用してワークシートを操作するWork with Worksheets using the Excel JavaScript API

この記事では、Excel JavaScript API を使用して、ワークシートでタスクを実行する方法のコード サンプルを示しています。This article provides code samples that show how to perform common tasks with worksheets using the Excel JavaScript API. Worksheet オブジェクトおよび WorksheetCollection オブジェクトがサポートするプロパティとメソッドの完全なリストについては、「Worksheet オブジェクト (JavaScript API for Excel)」および「WorksheetCollection オブジェクト (JavaScript API for Excel)」を参照してください。For the complete list of properties and methods that the Worksheet and WorksheetCollection objects support, see Worksheet Object (JavaScript API for Excel) and WorksheetCollection Object (JavaScript API for Excel).

注意

この記事の情報は標準のワークシートにのみ適用されます。"グラフ" シートや "マクロ" シートには適用されません。The information in this article applies only to regular worksheets; it does not apply to "chart" sheets or "macro" sheets.

ワークシートを取得するGet worksheets

次のコード サンプルでは、ワークシートのコレクションを取得し、各ワークシートの name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample gets the collection of worksheets, loads the name property of each worksheet, and writes a message to the console.

Excel.run(function (context) {
    var sheets = context.workbook.worksheets;
    sheets.load("items/name");

    return context.sync()
        .then(function () {
            if (sheets.items.length > 1) {
                console.log(`There are ${sheets.items.length} worksheets in the workbook:`);
            } else {
                console.log(`There is one worksheet in the workbook:`);
            }
            for (var i in sheets.items) {
                console.log(sheets.items[i].name);
            }
        });
}).catch(errorHandlerFunction);

注意

ワークシートの id プロパティは、指定されたブックのワークシートを一意に識別します。その値は、ワークシートの名前変更や移動をしても同じままです。The id property of a worksheet uniquely identifies the worksheet in a given workbook and its value will remain the same even when the worksheet is renamed or moved. Excel for Mac のブックからワークシートを削除すると、削除されたワークシートの id はそれ以降に作成される新規ワークシートに再割り当てされる可能性があります。When a worksheet is deleted from a workbook in Excel for Mac, the id of the deleted worksheet may be reassigned to a new worksheet that is subsequently created.

作業中のワークシートを取得するGet the active worksheet

次のコード サンプルでは、作業中のワークシートを取得し、name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample gets the active worksheet, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    sheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The active worksheet is "${sheet.name}"`);
        });
}).catch(errorHandlerFunction);

作業中のワークシートを設定するSet the active worksheet

次のコード サンプルでは、作業中のワークシートを Sample という名前のワークシートに設定し、name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample sets the active worksheet to the worksheet named Sample, loads its name property, and writes a message to the console. その名前を持つワークシートが存在しない場合、activate() メソッドにより ItemNotFound エラーがスローされます。If there is no worksheet with that name, the activate() method throws an ItemNotFound error.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    sheet.activate();
    sheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The active worksheet is "${sheet.name}"`);
        });
}).catch(errorHandlerFunction);

相対位置でワークシートを参照するReference worksheets by relative position

以下の例は、相対位置でワークシートを参照する方法を示しています。These examples show how to reference a worksheet by its relative position.

最初のワークシートを取得するGet the first worksheet

次のコード サンプルでは、ブックの最初のワークシートを取得し、name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample gets the first worksheet in the workbook, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var firstSheet = context.workbook.worksheets.getFirst();
    firstSheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The name of the first worksheet is "${firstSheet.name}"`);
        });
}).catch(errorHandlerFunction);

最後のワークシートを取得するGet the last worksheet

次のコード サンプルでは、ブックの最後のワークシートを取得し、name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample gets the last worksheet in the workbook, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var lastSheet = context.workbook.worksheets.getLast();
    lastSheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The name of the last worksheet is "${lastSheet.name}"`);
        });
}).catch(errorHandlerFunction);

次のワークシートを取得するGet the next worksheet

次のコード サンプルでは、ブックで作業中のワークシートの後のワークシートを取得し、name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample gets the worksheet that follows the active worksheet in the workbook, loads its name property, and writes a message to the console. 作業中のワークシートの後にワークシートがない場合、getNext() メソッドにより ItemNotFound エラーがスローされます。If there is no worksheet after the active worksheet, the getNext() method throws an ItemNotFound error.

 Excel.run(function (context) {
    var currentSheet = context.workbook.worksheets.getActiveWorksheet();
    var nextSheet = currentSheet.getNext();
    nextSheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The name of the sheet that follows the active worksheet is "${nextSheet.name}"`);
        });
}).catch(errorHandlerFunction);

前のワークシートを取得するGet the previous worksheet

次のコード サンプルでは、ブックで作業中のワークシートの前のワークシートを取得し、name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample gets the worksheet that precedes the active worksheet in the workbook, loads its name property, and writes a message to the console. 作業中のワークシートの前にワークシートが存在しない場合、getPrevious() メソッドにより ItemNotFound エラーがスローされます。If there is no worksheet before the active worksheet, the getPrevious() method throws an ItemNotFound error.

Excel.run(function (context) {
    var currentSheet = context.workbook.worksheets.getActiveWorksheet();
    var previousSheet = currentSheet.getPrevious();
    previousSheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The name of the sheet that precedes the active worksheet is "${previousSheet.name}"`);
        });
}).catch(errorHandlerFunction);

ワークシートを追加するAdd a worksheet

次のコード サンプルでは、Sample という名前の新しいワークシートをブックに追加し、name プロパティと position プロパティを読み込み、コンソールにメッセージを書き込みます。新しいワークシートは既存の全ワークシートの後に追加されます。The following code sample adds a new worksheet named Sample to the workbook, loads its name and position properties, and writes a message to the console. The new worksheet is added after all existing worksheets.

Excel.run(function (context) {
    var sheets = context.workbook.worksheets;

    var sheet = sheets.add("Sample");
    sheet.load("name, position");

    return context.sync()
        .then(function () {
            console.log(`Added worksheet named "${sheet.name}" in position ${sheet.position}`);
        });
}).catch(errorHandlerFunction);

ワークシートの削除Delete a worksheet

次のコード サンプルでは、ブックの最後のワークシートを (ただし、ブック内の唯一のシートでない場合に) 削除し、コンソールにメッセージを書き込みます。The following code sample deletes the final worksheet in the workbook (as long as it's not the only sheet in the workbook) and writes a message to the console.

Excel.run(function (context) {
    var sheets = context.workbook.worksheets;
    sheets.load("items/name");

    return context.sync()
        .then(function () {
            if (sheets.items.length === 1) {
                console.log("Unable to delete the only worksheet in the workbook");
            } else {
                var lastSheet = sheets.items[sheets.items.length - 1];

                console.log(`Deleting worksheet named "${lastSheet.name}"`);
                lastSheet.delete();

                return context.sync();
            };
        });
}).catch(errorHandlerFunction);

ワークシートの名前を変更するRename a worksheet

次のコード サンプルでは、作業中のワークシートの名前を New Name に変更します。The following code sample changes the name of the active worksheet to New Name.

Excel.run(function (context) {
    var currentSheet = context.workbook.worksheets.getActiveWorksheet();
    currentSheet.name = "New Name";

    return context.sync();
}).catch(errorHandlerFunction);

ワークシートを移動するMove a worksheet

次のコード サンプルでは、ブックの最後の位置からブックの最初の位置にワークシートを移動します。The following code sample moves a worksheet from the last position in the workbook to the first position in the workbook.

Excel.run(function (context) {
    var sheets = context.workbook.worksheets;
    sheets.load("items");

    return context.sync()
        .then(function () {
            var lastSheet = sheets.items[sheets.items.length - 1];
            lastSheet.position = 0;

            return context.sync();
        });
}).catch(errorHandlerFunction);

ワークシートの可視性を設定するSet worksheet visibility

これらの例では、ワークシートの可視性を設定する方法を示します。These examples show how to set the visibility of a worksheet.

ワークシートを非表示にするHide a worksheet

次のコード サンプルでは、Sample という名前のワークシートの可視性を非表示に設定し、name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample sets the visibility of worksheet named Sample to hidden, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    sheet.visibility = Excel.SheetVisibility.hidden;
    sheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`Worksheet with name "${sheet.name}" is hidden`);
        });
}).catch(errorHandlerFunction);

ワークシートを再表示するUnhide a worksheet

次のコード サンプルでは、Sample という名前のワークシートの可視性を表示に設定し、name プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample sets the visibility of worksheet named Sample to visible, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    sheet.visibility = Excel.SheetVisibility.visible;
    sheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`Worksheet with name "${sheet.name}" is visible`);
        });
}).catch(errorHandlerFunction);

ワークシート内でセルを取得するGet a cell within a worksheet

次のコード サンプルでは、Sample という名前のワークシートの 2 行目、5 列目にあるセルを取得し、address プロパティと values プロパティを読み込み、コンソールにメッセージを書き込みます。The following code sample gets the cell that is located in row 2, column 5 of the worksheet named Sample, loads its address and values properties, and writes a message to the console. getCell(行番号、列番号) メソッドに渡される値は、取得するセルの 0 から始まる行番号および列番号です。The values that are passed into the getCell(row: number, column:number) method are the zero-indexed row number and column number for the cell that is being retrieved.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    var cell = sheet.getCell(1, 4);
    cell.load("address, values");

    return context.sync()
        .then(function() {
            console.log(`The value of the cell in row 2, column 5 is "${cell.values[0][0]}" and the address of that cell is "${cell.address}"`);
        })
}).catch(errorHandlerFunction);

ワークシート内の範囲を取得するGet a range within a worksheet

ワークシート内の範囲を取得する方法を示す例については、「Excel の JavaScript API を使用して範囲を操作する」を参照してください。For examples that show how to get a range within a worksheet, see Work with Ranges using the Excel JavaScript API.

関連項目See also