この記事では、Excel JavaScript API を使用して範囲のチェックボックスを追加、編集、削除するコード サンプルを提供します。
Range オブジェクトがサポートするプロパティとメソッドの完全な一覧については、「Excel.Range クラス」を参照してください。
チェック ボックスを使用するには、範囲に TRUE や FALSE などのブール値が含まれていること を確認します。 Excel JavaScript API を使用して、ブール値のみをチェックボックスに置き換えることができます。
次のスクリーンショットは、テーブル内のチェック ボックスの例を示しています。 テーブルにはさまざまな項目が一覧表示され、項目が果物の種類であるかどうかを示すチェック ボックスが表示されます。
注:
完全なサンプルでこの記事のコード スニペットを試すには、Excel でScript Labを開き、サンプル ライブラリの [チェックボックス] を選択します。
チェックボックスを追加する
範囲にチェックボックスを追加するには、 Range.control プロパティを使用して CellControl 型にアクセスし、 CellControlType 列挙値を checkboxに設定します。
TRUE や FALSE などのブール値のみが、範囲内のチェック ボックスとして表示されます。 次のコード サンプルは、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 メソッドを使用します。
関連項目
Office Add-ins