Excel JavaScript API を使用してブックを操作するWork with workbooks using the Excel JavaScript API

この記事では、Excel JavaScript API を使用して、ブックでタスクを実行する方法のコード サンプルを示しています。This article provides code samples that show how to perform common tasks with workbooks using the Excel JavaScript API. Workbook オブジェクトがサポートするプロパティとメソッドの完全な一覧については、「Workbook オブジェクト (JavaScript API for Excel)」を参照してください。For the complete list of properties and methods that the Workbook object supports, see Workbook Object (JavaScript API for Excel). この記事では、Application オブジェクトを使用して実行するブック レベルのアクションについても説明します。This article also covers workbook-level actions performed through the Application object.

Workbook オブジェクトは、Excel を操作するアドインのエントリ ポイントです。The Workbook object is the entry point for your add-in to interact with Excel. このオブジェクトは、Excel データのアクセスや変更に使用するワークシート、テーブル、ピボットテーブル、その他のコレクションを保持します。It maintains collections of worksheets, tables, PivotTables, and more, through which Excel data is accessed and changed. WorksheetCollection オブジェクトは、個々のワークシートを使用して、ブックのすべてのデータにアドインからアクセスできるようにします。The WorksheetCollection object gives your add-in access to all the workbook's data through individual worksheets. 具体的には、アドインからワークシートの追加、ワークシート間の移動、ワークシート イベントへのハンドラーの割り当てができます。Specifically, it lets your add-in add worksheets, navigate among them, and assign handlers to worksheet events. ワークシートへのアクセスと編集の方法については、「Excel JavaScript API を使用してワークシートを操作する」を参照してください。The article Work with worksheets using the Excel JavaScript API describes how to access and edit worksheets.

アクティブ セルまたは選択した範囲を取得するGet the active cell or selected range

Workbook オブジェクトには、ユーザーまたはアドインが選択したセルの範囲を取得する 2 つのメソッド getActiveCell()getSelectedRange() があります。The Workbook object contains two methods that get a range of cells the user or add-in has selected: getActiveCell() and getSelectedRange(). getActiveCell() はブックからアクティブ セルを Range オブジェクトとして取得します。getActiveCell() gets the active cell from the workbook as a Range object. 次の例では、getActiveCell() を呼び出し、コンソールにセルのアドレスを表示します。The following example shows a call to getActiveCell(), followed by the cell's address being printed to the console.

Excel.run(function (context) {
    var activeCell = context.workbook.getActiveCell();
    activeCell.load("address");

    return context.sync().then(function () {
        console.log("The active cell is " + activeCell.address);
    });
}).catch(errorHandlerFunction);

getSelectedRange() メソッドは現在選択されている単一の範囲を返します。The getSelectedRange() method returns the currently selected single range. 複数の範囲が選択されている場合は、InvalidSelection エラーがスローされます。If multiple ranges are selected, an InvalidSelection error is thrown. 次の例では、getSelectedRange() を呼び出し、範囲の塗りつぶし色を黄色に設定します。The following example shows a call to getSelectedRange() that then sets the range's fill color to yellow.

Excel.run(function(context) {
    var range = context.workbook.getSelectedRange();
    range.format.fill.color = "yellow";
    return context.sync();
}).catch(errorHandlerFunction);

ブックを作成するCreate a workbook

アドインでは、アドインが現在実行されている Excel のインスタンスとは異なる新しいブックを作成できます。Your add-in can create a new workbook, separate from the Excel instance in which the add-in is currently running. Excel オブジェクトには、この目的の createWorkbook メソッドがあります。The Excel object has the createWorkbook method for this purpose. このメソッドが呼び出されると、新しいブックが Excel の新しいインスタンスですぐに開いて表示されます。When this method is called, the new workbook is immediately opened and displayed in a new instance of Excel. アドインは前のブックで開いて実行されたままになります。Your add-in remains open and running with the previous workbook.

Excel.createWorkbook();

createWorkbook メソッドは既存のブックのコピーの作成もできます。The createWorkbook method can also create a copy of an existing workbook. このメソッドは、オプションのパラメーターとして .xlsx ファイルの base64 エンコード文字列表現を受け取ります。The method accepts a base64-encoded string representation of an .xlsx file as an optional parameter. 文字列の引数は有効な .xlsx ファイルと見なされ、作成されるブックはそのファイルのコピーになります。The resulting workbook will be a copy of that file, assuming the string argument is a valid .xlsx file.

ファイルのスライスを使用して、アドインの現在のブックを base64 エンコード文字列として取得できます。You can get your add-in’s current workbook as a base64-encoded string by using file slicing. 次の例に示すように、FileReader クラスを使用して、ファイルを必要な base64 エンコード文字列に変換できます。The FileReader class can be used to convert a file into the required base64-encoded string, as demonstrated in the following example.

var myFile = document.getElementById("file");
var reader = new FileReader();

reader.onload = (function (event) {
    Excel.run(function (context) {
        // strip off the metadata before the base64-encoded string
        var startIndex = reader.result.toString().indexOf("base64,");
        var workbookContents = reader.result.toString().substr(startIndex + 7);

        Excel.createWorkbook(workbookContents);
        return context.sync();
    }).catch(errorHandlerFunction);
});

// read in the file as a data URL so we can parse the base64-encoded string
reader.readAsDataURL(myFile.files[0]);

既存のブックのコピーを現在のブックに挿入する (プレビュー)Insert a copy of an existing workbook into the current one

注意

WorksheetCollection.addFromBase64 メソッドは、現在パブリック プレビューでのみ利用できます。The WorksheetCollection.addFromBase64 method described in this article is currently available only in public preview. この機能を使用するには、office JavaScript ライブラリのプレビューバージョンをoffice の JS CDNから使用する必要があります。To use this feature, you must use the preview version of the Office JavaScript library from the Office.js CDN. TypeScript のコンパイルおよび IntelliSense 用の型定義ファイルは、CDN と、定義された定義ファイルにあります。The type definition file for TypeScript compilation and IntelliSense is found at the CDN and DefinitelyTyped. これらの種類は、でnpm install --save-dev @types/office-js-previewインストールできます。You can install these types with npm install --save-dev @types/office-js-preview. 今後予定されている API の詳細については、「Excel JavaScript API 要件セット」参照してください。For more information on our upcoming APIs, please visit Excel JavaScript API requirement sets.

前の例は、既存のブックから作成された新しいブックを示しています。The previous example shows a new workbook being created from an existing workbook. 既存のブックの一部またはすべてを、アドインに関連付けられているブックにコピーすることもできます。You can also copy some or all of an existing workbook into the one currently associated with your add-in. ブックの WorksheetCollection にある addFromBase64 メソッドは、対象のブックのワークシートのコピーを現在のブックに挿入します。A workbook's WorksheetCollection has the addFromBase64 method to insert copies of the target workbook's worksheets into itself. 他のブックのファイルは、Excel.createWorkbook 呼び出しの場合と同様に、base64 エンコード文字列として渡されます。The other workbook's file is passed as base64-encoded string, just like the Excel.createWorkbook call.

addFromBase64(base64File: string, sheetNamesToInsert?: string[], positionType?: Excel.WorksheetPositionType, relativeTo?: Worksheet | string): OfficeExtension.ClientResult<string[]>;

次の例では、ブックのワークシートが現在のブックのアクティブ ワークシートの直後に挿入されています。The following example shows a workbook's worksheets being inserted in the current workbook, directly after the active worksheet. nullsheetNamesToInsert?: string[] パラメーターに渡されている点に注意してください。Note that null is passed for the sheetNamesToInsert?: string[] parameter. つまり、すべてのワークシートが挿入されます。This means all the worksheets are being inserted.

var myFile = document.getElementById("file");
var reader = new FileReader();

reader.onload = (event) => {
    Excel.run((context) => {
        // strip off the metadata before the base64-encoded string
        var startIndex = reader.result.toString().indexOf("base64,");
        var workbookContents = reader.result.toString().substr(startIndex + 7);

        var sheets = context.workbook.worksheets;
        sheets.addFromBase64(
            workbookContents,
            null, // get all the worksheets
            Excel.WorksheetPositionType.after, // insert them after the worksheet specified by the next parameter
            sheets.getActiveWorksheet() // insert them after the active worksheet
        );
        return context.sync();
    });
};

// read in the file as a data URL so we can parse the base64-encoded string
reader.readAsDataURL(myFile.files[0]);

ブックのシート構成を保護するProtect the workbook's structure

アドインでは、ブックのシート構成を編集するユーザーの機能を制御できます。Your add-in can control a user's ability to edit the workbook's structure. Workbook オブジェクトの protection プロパティは WorkbookProtection オブジェクトであり、protect() メソッドを備えています。The Workbook object's protection property is a WorkbookProtection object with a protect() method. 次の例では、ブックのシート構成の保護を切り替える基本的なシナリオを示します。The following example shows a basic scenario toggling the protection of the workbook's structure.

Excel.run(function (context) {
    var workbook = context.workbook;
    workbook.load("protection/protected");

    return context.sync().then(function() {
        if (!workbook.protection.protected) {
            workbook.protection.protect();
        }
    });
}).catch(errorHandlerFunction);

protect メソッドは、オプションの文字列パラメーターを受け取ります。The protect method accepts an optional string parameter. この文字列は、ユーザーが保護をバイパスしてブックのシート構成を変更するために必要なパスワードを表します。This string represents the password needed for a user to bypass protection and change the workbook's structure.

保護は、不必要なデータ編集をできないようにするため、ワークシート レベルで設定することもできます。Protection can also be set at the worksheet level to prevent unwanted data editing. 詳細については、「Excel JavaScript API を使用してワークシートを操作する」のデータの保護のセクションを参照してください。For more information, see the Data protection section of the Work with worksheets using the Excel JavaScript API article.

注意

Excel のブックの保護の詳細については、「ブックを保護する」を参照してください。For more information about workbook protection in Excel, see the Protect a workbook article.

ドキュメント プロパティへのアクセスAccess document properties

Workbook オブジェクトは、ドキュメント プロパティと呼ばれる Office ファイルのメタデータにアクセスできます。Workbook objects have access to the Office file metadata, which is known as the document properties. Workbook オブジェクトの properties プロパティは、これらのメタデータ値を含む DocumentProperties オブジェクトです。The Workbook object's properties property is a DocumentProperties object containing these metadata values. 次のコード例では、author プロパティの設定方法を示しています。The following example shows how to set the author property.

Excel.run(function (context) {
    var docProperties = context.workbook.properties;
    docProperties.author = "Alex";
    return context.sync();
}).catch(errorHandlerFunction);

カスタム プロパティを定義することもできます。You can also define custom properties. DocumentProperties オブジェクトには custom プロパティが含まれていて、ユーザー定義プロパティのキー値のペアのコレクションを表します。The DocumentProperties object contains a custom property that represents a collection of key-value pairs for user-defined properties. 次の例では、"Hello" という値を持つ Introduction という名前のカスタム プロパティを作成し、それを取得する方法を示します。The following example shows how to create a custom property named Introduction with the value "Hello", then retrieve it.

Excel.run(function (context) {
    var customDocProperties = context.workbook.properties.custom;
    customDocProperties.add("Introduction", "Hello");
    return context.sync();
}).catch(errorHandlerFunction);

[...]

Excel.run(function (context) {
    var customDocProperties = context.workbook.properties.custom;
    var customProperty = customDocProperties.getItem("Introduction");
    customProperty.load("key, value");

    return context.sync().then(function() {
        console.log("Custom key  : " + customProperty.key); // "Introduction"
        console.log("Custom value : " + customProperty.value); // "Hello"
    });
}).catch(errorHandlerFunction);

ドキュメント設定へのアクセスAccess document settings

ブックの設定は、カスタム プロパティのコレクションに似ています。A workbook's settings are similar to the collection of custom properties. 設定は 1 つの Excel ファイルとアドインのペアリングに固有であるのに対して、プロパティはファイルに接続しているだけである点が異なります。The difference is settings are unique to a single Excel file and add-in pairing, whereas properties are solely connected to the file. 次の例は、設定を作成してアクセスする方法を示しています。The following example shows how to create and access a setting.

Excel.run(function (context) {
    var settings = context.workbook.settings;
    settings.add("NeedsReview", true);
    var needsReview = settings.getItem("NeedsReview");
    needsReview.load("value");

    return context.sync().then(function() {
        console.log("Workbook needs review : " + needsReview.value);
    });
}).catch(errorHandlerFunction);

カスタム XML データをブックに追加するAdd custom XML data to the workbook

Excel の Open XML .xlsx ファイル形式を使用すると、アドインでカスタム XML データをブックに埋め込むことができます。Excel's Open XML .xlsx file format lets your add-in embed custom XML data in the workbook. このデータは、アドインに関係なく、ブックで保持されます。This data persists with the workbook, independent of the add-in.

ブックには CustomXmlPartCollection が含まれます。これは CustomXmlParts のリストです。A workbook contains a CustomXmlPartCollection, which is a list of CustomXmlParts. これにより、XML 文字列と対応する一意の ID へのアクセスが提供されます。These give access to the XML strings and a corresponding unique ID. これらの ID を設定として保管することにより、アドインはセッション間で XML パーツへのキーを保持できます。By storing these IDs as settings, your add-in can maintain the keys to its XML parts between sessions.

以下のサンプルは、カスタム XML パーツを使用する方法を示しています。The following samples show how to use custom XML parts. 最初のコード ブロックは、XML データをドキュメントに埋め込む方法を示しています。The first code block demonstrates how to embed XML data in the document. レビュー担当者のリストを保管してから、ブックの設定を使用して XML の id を保存して、後から取得できるようにします。It stores a list of reviewers, then uses the workbook's settings to save the XML's id for future retrieval. 2 番目のブロックでは、後からその XML にアクセスする方法が示されています。The second block shows how to access that XML later. "ContosoReviewXmlPartId" 設定がロードされ、ブックの customXmlParts に渡されます。The "ContosoReviewXmlPartId" setting is loaded and passed to the workbook's customXmlParts. それから、XML データがコンソールに出力されます。The XML data is then printed to the console.

Excel.run(async (context) => {
    // Add reviewer data to the document as XML
    var originalXml = "<Reviewers xmlns='http://schemas.contoso.com/review/1.0'><Reviewer>Juan</Reviewer><Reviewer>Hong</Reviewer><Reviewer>Sally</Reviewer></Reviewers>";
    var customXmlPart = context.workbook.customXmlParts.add(originalXml);
    customXmlPart.load("id");

    return context.sync().then(function() {
        // Store the XML part's ID in a setting
        var settings = context.workbook.settings;
        settings.add("ContosoReviewXmlPartId", customXmlPart.id);
    });
}).catch(errorHandlerFunction);
Excel.run(async (context) => {
    // Retrieve the XML part's id from the setting
    var settings = context.workbook.settings;
    var xmlPartIDSetting = settings.getItemOrNullObject("ContosoReviewXmlPartId").load("value");

    return context.sync().then(function () {
        if (xmlPartIDSetting.value) {
            var customXmlPart = context.workbook.customXmlParts.getItem(xmlPartIDSetting.value);
            var xmlBlob = customXmlPart.getXml();

            return context.sync().then(function () {
                // Add spaces to make more human readable in the console
                var readableXML = xmlBlob.value.replace(/></g, "> <");
                console.log(readableXML);
            });
        }
    });
}).catch(errorHandlerFunction);

注意

CustomXMLPart.namespaceUri にデータが入れられるのは、トップレベルのカスタム XML 要素に xmlns 属性が含まれている場合に限ります。CustomXMLPart.namespaceUri is only populated if the top-level custom XML element contains the xmlns attribute.

計算の動作を制御するControl calculation behavior

計算モードを設定するSet calculation mode

既定では、Excel は、参照されているセルが変更されたときに数式の結果を再計算します。By default, Excel recalculates formula results whenever a referenced cell is changed. この計算の動作を調整すると、アドインのパフォーマンス向上に役立つ場合があります。Your add-in's performance may benefit from adjusting this calculation behavior. Application オブジェクトには、CalculationMode 型のプロパティ calculationMode があります。The Application object has a calculationMode property of type CalculationMode. 次のいずれかの値を設定できます。It can be set to the following values:

  • automatic: 既定の再計算動作。関連するデータが変更されるたびに、Excel は新しい数式の結果を計算します。automatic: The default recalculation behavior where Excel calculates new formula results every time the relevant data is changed.
  • automaticExceptTables: automatic と同様ですが、テーブル内の値に加えた変更は無視されます。automaticExceptTables: Same as automatic, except any changes made to values in tables are ignored.
  • manual: ユーザーまたはアドインが要求した場合にのみ計算します。manual: Calculations only occur when the user or add-in requests them.

計算タイプを設定するSet calculation type

Application オブジェクトは、強制的に即時再計算する方法を提供します。The Application object provides a method to force an immediate recalculation. Application.calculate(calculationType) は、指定した calculationType に基づいて手動再計算を開始します。Application.calculate(calculationType) starts a manual recalculation based on the specified calculationType. 次の値を指定できます。The following values can be specified:

  • full: 最後に再計算されてから変更されたかどうかに関係なく、開いているすべてのブックのすべての数式を再計算します。full: Recalculate all formulas in all open workbooks, regardless of whether they have changed since the last recalculation.
  • fullRebuild: 最後に再計算されてから変更されたかどうかに関係なく、依存関係のある数式を確認してから、開いているすべてのブックのすべての数式を再計算します。fullRebuild: Check dependent formulas, and then recalculate all formulas in all open workbooks, regardless of whether they have changed since the last recalculation.
  • recalculate: すべてのアクティブなブックで、最後に計算されてから変更された数式 (またはプログラムで再計算用にマークされている数式)、およびそれに依存する数式を再計算します。recalculate: Recalculate formulas that have changed (or been programmatically marked for recalculation) since the last calculation, and formulas dependent on them, in all active workbooks.

注意

再計算の詳細については、「数式の再計算、反復計算、または精度を変更する」を参照してください。For more information about recalculation, see the Change formula recalculation, iteration, or precision article.

計算を一時的に中断するTemporarily suspend calculations

Excel API では、アドインから RequestContext.sync() を呼び出すまで計算をオフにすることもできます。The Excel API also lets add-ins turn off calculations until RequestContext.sync() is called. これは、suspendApiCalculationUntilNextSync() で実行できます。This is done with suspendApiCalculationUntilNextSync(). このメソッドは、アドインから大きな範囲を編集し、複数の編集の間でデータにアクセスする必要がない場合に使用します。Use this method when your add-in is editing large ranges without needing to access the data between edits.

context.application.suspendApiCalculationUntilNextSync();

コメント (プレビュー)Comments (preview)

注意

コメント API は現在、パブリック プレビューでのみ利用できます。The following events are currently available only in public preview. この機能を使用するには、office JavaScript ライブラリのプレビューバージョンをoffice の JS CDNから使用する必要があります。To use this feature, you must use the preview version of the Office JavaScript library from the Office.js CDN. TypeScript のコンパイルおよび IntelliSense 用の型定義ファイルは、CDN と、定義された定義ファイルにあります。The type definition file for TypeScript compilation and IntelliSense is found at the CDN and DefinitelyTyped. これらの種類は、でnpm install --save-dev @types/office-js-previewインストールできます。You can install these types with npm install --save-dev @types/office-js-preview. 今後予定されている API の詳細については、「Excel JavaScript API 要件セット」参照してください。For more information on our upcoming APIs, please visit Excel JavaScript API requirement sets.

ブック内のすべてのコメントは、Workbook.comments プロパティによって追跡されます。All comments within a workbook are tracked by the Workbook.comments property. これには、ユーザーによって作成されたコメントだけでなく、アドインによって作成されたコメントも含まれます。This includes comments created by users and also comments created by your add-in. Workbook.comments プロパティは、Comment オブジェクトのコレクションを含む CommentCollection オブジェクトです。The Workbook.comments property is a CommentCollection object that contains a collection of Comment objects.

コメントをブックに追加するには、CommentCollection.add メソッドを使用して、コメントのテキストを文字列として渡し、コメントを追加するセルを文字列または Range オブジェクトのいずれかとして渡します。To add comments to a workbook, use the CommentCollection.add method, passing in the comment's text, as a string, and the cell where the comment will be added, as either a string or Range object. 次のコード例は、コメントをセル A2 に追加します。The following code sample adds a comment to cell A2.

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

    // Note that an InvalidArgument error will be thrown if multiple cells passed to `Comment.add`.
    comments.add("TODO: add data.", "A2");
    return context.sync();
});

各コメントには、作成者や作成日などの作成に関するメタデータが含まれています。Each comment contains metadata about its creation, such as the author and creation date. アドインによって作成されたコメントは、現在のユーザーによって作成されたものと見なされます。Comments created by your add-in are considered to be authored by the current user. 次のサンプルは、A2 に作成者のメール、作成者の名前、コメントの作成日を表示する方法を示しています。The following sample shows how to display the author's email, author's name, and creation date of a comment at A2.

Excel.run(function (context) {
    // Get the comment at cell A2.
    var comment = context.workbook.comments.getItemByCell("Comments!A2");
    comment.load(["authorEmail", "authorName", "creationDate"]);
    return context.sync().then(function () {
        console.log(`${comment.creationDate.toDateString()}: ${comment.authorName} (${comment.authorEmail})`);
    });
});

各コメントには、0 個以上の返信が含まれます。Each comment contains zero or more replies. Comment オブジェクトには replies プロパティがあり、これは CommentReply オブジェクトを含む CommentReplyCollection です。Comment objects have a replies property, which is a CommentReplyCollection that contains CommentReply objects. コメントに返信を追加するには、CommentReplyCollection.add メソッドを使用して、返信のテキストを渡します。To add a reply to a comment, use the CommentReplyCollection.add method, passing in the text of the reply. 返信は、追加された順に表示されます。Replies are displayed in the order they are added. 次のコード サンプルは、ブックの最初のコメントに返信を追加します。The following code sample adds a data series to the first chart in the worksheet.

Excel.run(function (context) {
    // Get the first comment added to the workbook.
    var comment = context.workbook.comments.getItemAt(0);
    comment.replies.add("Thanks for the reminder!");
    return context.sync();
});

コメントまたはコメントの返信を編集するには、その Comment.content プロパティまたは CommentReply.content プロパティを設定します。To edit a comment or comment reply, set its Comment.content property or CommentReply.content property. コメントまたはコメントの返信を削除するには、Comment.delete メソッドまたは CommentReply.delete メソッドを使用します。To delete a comment or comment reply, use the Comment.delete method or CommentReply.delete method. コメントを削除すると、そのコメントに関連付けられている返信もすべて削除されます。Deleting a comment also deletes all the replies associated with that comment.

ヒント

コメントは、同じ手法を使用してワークシート レベルでも管理できます。Comments can also be managed at the Worksheet level using the same techniques.

ブックを保存する (プレビュー)Save the workbook

注意

Workbook.save メソッドは、現在パブリック プレビューでのみ利用できます。The Workbook.save method described in this article is currently available only in public preview. この機能を使用するには、office JavaScript ライブラリのプレビューバージョンをoffice の JS CDNから使用する必要があります。To use this feature, you must use the preview version of the Office JavaScript library from the Office.js CDN. TypeScript のコンパイルおよび IntelliSense 用の型定義ファイルは、CDN と、定義された定義ファイルにあります。The type definition file for TypeScript compilation and IntelliSense is found at the CDN and DefinitelyTyped. これらの種類は、でnpm install --save-dev @types/office-js-previewインストールできます。You can install these types with npm install --save-dev @types/office-js-preview. 今後予定されている API の詳細については、「Excel JavaScript API 要件セット」参照してください。For more information on our upcoming APIs, please visit Excel JavaScript API requirement sets.

Workbook.save は、ブックを永続記憶装置に保存します。Workbook.save saves the workbook to persistent storage . save メソッドにはオプションの saveBehavior パラメーターを 1 つ指定できます。値は次のいずれかになります。The save method takes a single, optional parameter that can be one of the following values:

  • Excel.SaveBehavior.save (既定値): ファイル名や保存場所を指定するようにユーザーに促すダイアログは表示されず、そのままファイルが保存されます。Excel.SaveBehavior.save (default): The file is saved without prompting the user to specify file name and save location. ファイルが以前に保存されていない場合は、既定の場所に保存されます。If the file has not been saved previously, it's saved to the default location. ファイルが以前に保存されている場合は、同じ場所に保存されます。If the file has been saved previously, it's saved to the same location.
  • Excel.SaveBehavior.prompt: ファイルが以前に保存されていない場合は、ファイル名や保存場所を指定するようにユーザーに促すダイアログが表示されます。Excel.SaveBehavior.prompt: If file has not been saved previously, the user will be prompted to specify file name and save location. ファイルが以前に保存されている場合、ファイルは同じ場所に保存され、ダイアログは表示されません。If the file has been saved previously, it will be saved to the same location and the user will not be prompted.

注意事項

保存を促すダイアログが表示されたのにユーザーがその操作をキャンセルすると、save は例外をスローします。If the user is prompted to save and cancels the operation, save throws an exception.

context.workbook.save(Excel.SaveBehavior.prompt);

ブックを閉じる (プレビュー)Close the workbook

注意

Workbook.close メソッドは、現在パブリック プレビューでのみ利用できます。The Workbook.close method described in this article is currently available only in public preview. この機能を使用するには、office JavaScript ライブラリのプレビューバージョンをoffice の JS CDNから使用する必要があります。To use this feature, you must use the preview version of the Office JavaScript library from the Office.js CDN. TypeScript のコンパイルおよび IntelliSense 用の型定義ファイルは、CDN と、定義された定義ファイルにあります。The type definition file for TypeScript compilation and IntelliSense is found at the CDN and DefinitelyTyped. これらの種類は、でnpm install --save-dev @types/office-js-previewインストールできます。You can install these types with npm install --save-dev @types/office-js-preview. 今後予定されている API の詳細については、「Excel JavaScript API 要件セット」参照してください。For more information on our upcoming APIs, please visit Excel JavaScript API requirement sets.

Workbook.close は、ブックとそのブックに関連付けられているアドインを終了します (Excel アプリケーションは開いたまま)。Workbook.close closes the workbook, along with add-ins that are associated with the workbook (the Excel application remains open). close メソッドにはオプションの closeBehavior パラメーターを 1 つ指定できます。値は次のいずれかになります。The close method takes a single, optional parameter that can be one of the following values:

  • Excel.CloseBehavior.save (既定値): ファイルは閉じる前に保存されます。Excel.CloseBehavior.save (default): The file is saved before closing. そのファイルが以前に保存されていない場合は、ファイル名や保存場所を指定するようにユーザーに促すダイアログが表示されます。If the file has not been saved previously, the user will be prompted to specify file name and save location.
  • Excel.CloseBehavior.skipSave: ファイルはそのまま閉じられ、保存されません。Excel.CloseBehavior.skipSave: The file is immediately closed, without saving. 未保存の変更は失われます。Any unsaved changes will be lost.
context.workbook.close(Excel.CloseBehavior.save);

関連項目See also