次の方法で共有


Excel JavaScript API を使用してチェックボックスを追加する

この記事では、Excel JavaScript API を使用して範囲のチェックボックスを追加、編集、削除するコード サンプルを提供します。 Range オブジェクトがサポートするプロパティとメソッドの完全な一覧については、「Excel.Range クラス」を参照してください。

チェック ボックスを使用するには、範囲に TRUE や FALSE などのブール値が含まれていること を確認します。 Excel JavaScript API を使用して、ブール値のみをチェックボックスに置き換えることができます。

次のスクリーンショットは、テーブル内のチェック ボックスの例を示しています。 テーブルにはさまざまな項目が一覧表示され、項目が果物の種類であるかどうかを示すチェック ボックスが表示されます。

2 番目の列にチェック ボックスが付いたテーブル。

注:

完全なサンプルでこの記事のコード スニペットを試すには、Excel でScript Labを開き、サンプル ライブラリの [チェックボックス] を選択します。

チェックボックスを追加する

範囲にチェックボックスを追加するには、 Range.control プロパティを使用して CellControl 型にアクセスし、 CellControlType 列挙値を checkboxに設定します。 TRUEFALSE などのブール値のみが、範囲内のチェック ボックスとして表示されます。 次のコード サンプルは、FruitTable という名前のテーブルの [分析] 列にチェック ボックスを追加する方法を示しています。

await Excel.run(async (context) => {
    // This code sample shows how to add checkboxes to a table.
    const sheet = context.workbook.worksheets.getActiveWorksheet();

    // Get the "Analysis" column in the table, without the header.
    const range = sheet.tables.getItem("FruitTable").columns.getItem("Analysis").getDataBodyRange();

    // Change the Boolean values in the range to checkboxes.
    range.control = {
      type: Excel.CellControlType.checkbox
    };
    await context.sync();
});

チェック ボックスの値を変更する

Excel JavaScript API でチェック ボックスをオンまたはオフにするには、そのセルのブール値を変更します。 セルの値を変更するには、 Range.values を使用します。 次のコード サンプルは、セルの値を TRUE に設定する方法を示しています。 セルにチェックボックスがまだ表示されていない場合、コード サンプルではセルのブール値を変更するだけです。

await Excel.run(async (context) => {
    // This code sample shows how to change the value of cell B3.
    const sheet = context.workbook.worksheets.getActiveWorksheet();
    const range = sheet.getRange("B3");

    range.values = [["TRUE"]];
    await context.sync();
});

チェック ボックスを削除する

範囲からチェックボックスを削除し、値を単純なブール値に戻すには、 Range.control プロパティを使用して CellControl 型にアクセスし、 CellControlType 列挙値を emptyに設定します。 次のコード サンプルは、FruitTable という名前のテーブルの [分析] 列からチェック ボックスを削除する方法を示しています。

await Excel.run(async (context) => {
    // This code sample shows how to remove checkboxes from a table.
    const sheet = context.workbook.worksheets.getActiveWorksheet();

    // Get the "Analysis" column in the table, without the header.
    const range = sheet.tables.getItem("FruitTable").columns.getItem("Analysis").getDataBodyRange();

    // Change the checkboxes to Boolean values.
    range.control = {
      type: Excel.CellControlType.empty
    };
    await context.sync();
});

注:

範囲からすべてのコンテンツを削除するには、 Range.clearOrResetContents メソッドを使用します。

関連項目