2025年10月30日にリリースされた「SpreadJS(スプレッドJS)」の最新バージョン「V18.2J」では、チェックボックス型セルとチェックボックスリスト型セルの表示形式として、トグルボタンが追加されました。これにより、ユーザーはより直感的かつスムーズにオン/オフを切り替えることができます。

本記事では、チェックボックス型セルとチェックボックスリスト型セルをトグルボタン形式にしてカスタマイズする方法について解説します。
開発環境
事前準備
今回作成するファイルは次の3つです。
| index.html | ページ本体。ページの要素としてSpreadJSコントロールを配置します |
|---|---|
| app.js | SpreadJSコントロールを作成するコードを記載します |
| styles.css | SpreadJSコントロールのスタイル定義を記載します |
SpreadJSコントロールの使用にはSpreadJSのモジュールを環境に配置する必要があります。npmなどから入手する方法もありますが、今回は環境に直接SpreadJSのモジュールを配置していきます。あらかじめSpreadJSの製品版かトライアル版をご用意ください。トライアル版は以下より無償で入手可能です。
製品版、またはトライアル版をダウンロードしたら、ZIPファイルを解凍し、以下のファイルを環境にコピーします。CSSファイルは以下に記載のもの含め7種類あるのでお好みのテーマのものを選択してください。
- scripts/gc.spread.sheets.all.18.2.4.min.js
- scripts/resources/gc.spread.sheets.resources.ja.18.2.4.min.js
- css/gc.spread.sheets.excel2013white.18.2.4.css
チェックボックス型セルとチェックボックスリスト型セルを実装する
それでは、チェックボックス型セルとチェックボックスリスト型セルを作成して、トグルボタン形式に設定しましょう。
今回作成するサンプルでは、チェックボックスリスト型セルに設定したトグルボタンのオン/オフによってチェックボックス型セルのトグルボタンのスタイルや動作を変更する仕様になっています。
最初に、SpreadJSライブラリの参照設定をHTMLファイルに追加し、SpreadJSのモジュールに加えて、前述の「app.js」と「styles.css」への参照も追加します。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link href="css/gc.spread.sheets.excel2013white.18.2.4.css" rel="stylesheet" />
<script src="scripts/gc.spread.sheets.all.18.2.4.min.js"></script>
<script src="scripts/resources/gc.spread.sheets.resources.ja.18.2.4.min.js"></script>
<link href="css/styles.css" rel="stylesheet" />
<script src="scripts/app.js"></script>
</head>
<body>
<div id="ss"></div>
</body>
</html>続いて「app.js」を以下のように作成します。
※ ライセンスキーを設定しない場合、トライアル版を示すメッセージが表示されます。ライセンスキーの設定方法についてはこちらをご覧ください。
// ライセンスキーとカルチャの設定
GC.Spread.Sheets.LicenseKey = 'ここにSpreadJSのライセンスキーを設定します';
GC.Spread.Common.CultureManager.culture('ja-jp');
window.onload = () => {
const spreadNS = GC.Spread.Sheets;
// SpreadJSの生成と設定
const spread = new spreadNS.Workbook("ss");
// シートの設定
const sheet = spread.getSheet(0);
sheet.setColumnWidth(0, 270);
sheet.setColumnWidth(1, 270);
sheet.setRowHeight(0, 30);
sheet.setRowHeight(1, 220);
sheet.getRange(0, 0, 1, 2).foreColor('blue');
sheet.getRange(0, 0, 2, 2)
.hAlign(spreadNS.HorizontalAlign.center)
.vAlign(spreadNS.VerticalAlign.center);
sheet.setValue(0, 0, 'チェックボックス型セル');
sheet.setValue(0, 1, 'チェックボックスリスト型セル');
// チェックボックス型セルの設定
const checkBox = new spreadNS.CellTypes.CheckBox();
checkBox.mode('toggle');
checkBox.textTrue('On');
checkBox.textFalse('Off');
sheet.setCellType(1, 0, checkBox);
sheet.getRange(1, 0, 1, 1).font("26px メイリオ");
// チェックボックスリスト型セルの設定
const checkBoxList = new spreadNS.CellTypes.CheckBoxList();
checkBoxList.mode('toggle');
checkBoxList.items([
{ text: "カスタムサイズ", value: 0 },
{ text: "自動サイズ", value: 1 },
{ text: "テキスト配置", value: 2 },
{ text: "カスタム色", value: 3 },
{ text: "スライダー余白", value: 4 },
{ text: "半径", value: 5 },
{ text: "アニメーション速度", value: 6 },
]);
checkBoxList.direction(spreadNS.CellTypes.Direction.vertical);
checkBoxList.itemSpacing({ vertical: 10 });
checkBoxList.textAlign(spreadNS.CellTypes.TextAlign.left);
checkBoxList.toggleOptions({ autoSize: true });
sheet.setCellType(1, 1, checkBoxList);
// チェックボックス型セルのtoggleOptionsの変更
・・・(中略)・・・
}チェックボックス型セルやチェックボックスリスト型セルの表示形式をトグルボタンに変更するには、上記のようにmodeメソッドの引数にtoggleを渡します。トグルボタンにした場合は次のプロパティは無効になります。
- boxSize
- isThreeState
なお、チェックボックスリスト型セルでは、項目ごとに異なるトグルボタンのスタイルを設定することはできません。toggleOptionsメソッドで設定したスタイルや動作は、セル内のすべてのトグルボタンに適用されます。
最後に「styles.css」にスタイルを記述します。
/* SpreadJSのスタイル */
#ss {
inline-size: 600px;
block-size: 300px;
border: 1px solid silver;
}以上を記述した後にアプリケーションを実行すると、次のようになります。

注記:
通常のチェックボックスでは、セル内のどこをクリックしてもチェックボックスのオン/オフが切り替わりますが、トグルモードではトグルボタン部分をクリックした場合のみ、オン/オフが切り替わります。
トグルボタンをカスタマイズする
トグルボタンのスタイルや動作は、チェックボックス型セルやチェックボックスリスト型セルのtoggleOptionsメソッドの引数であるIToggleOptionsインターフェイスの各プロパティを使って設定します。
また、チェックボックス型セルのテキストの配置はtoggleOptionsメソッドではなくtextAlignメソッドで設定します。textAlignメソッドに渡す引数のCheckBoxTextAlign列挙体の「inside」メンバーはトグルボタンでのみ有効です。
IToggleOptionsインターフェイスのプロパティは次のとおりです。これらの機能を使ってチェックボックス型セルのトグルボタンのスタイルと動作を変更できるようにします。各機能については、デモもご参照いただければと思います。
| プロパティ | 説明 | 既定値 |
|---|---|---|
| animationDuration | アニメーション速度 | 100 |
| autoSize | 文字サイズに合わせた自動調節 | false |
| height | トグルボタンの高さ | 15 |
| sliderColorOff | オフ時のスライダー色 | #ffffff |
| sliderColorOn | オン時のスライダー色 | #ffffff |
| sliderMargin | スライダーの余白 | 2 |
| sliderRadius | スライダーの半径 | undefined |
| trackColorOff | オフ時のトラック色 | #bfbfbf |
| trackColorOn | オン時のトラック色 | #4CAF50 |
| trackRadius | トラックの半径 | undefined |
| width | トグルボタンの幅 | 30 |
チェックボックスリスト型セルのトグルボタンをオン/オフにしたときにチェックボックス型セルのトグルボタンのスタイルや動作を変更するコードは、次のとおりです。ここでは、スプレッド構文を使ってtoggleOptionsメソッドに渡すオブジェクトを生成しています。
・・・(中略)・・・
// チェックボックス型セルのtoggleOptionsの変更
sheet.bind(spreadNS.Events.ValueChanged, (e, info) => {
if (info.col == 1) {
const value = info.newValue;
checkBox.toggleOptions({
...(value.includes(0) ? {
width: 200,
height: 100
} : {}),
...(value.includes(1) ? { autoSize: true } : {}),
...(value.includes(3) ? {
sliderColorOff: 'seashell',
sliderColorOn: 'aqua',
trackColorOff: 'pink',
trackColorOn: 'skyblue'
} : {}),
...(value.includes(4) ? { sliderMargin: 6 } : {}),
...(value.includes(5) ? {
sliderRadius: 0,
trackRadius: 0
} : {}),
...(value.includes(6) ? { animationDuration: 500 } : {}),
});
checkBox.textAlign(
value.includes(2) ?
spreadNS.CellTypes.CheckBoxTextAlign.inside :
spreadNS.CellTypes.CheckBoxTextAlign.right
);
}
});上記のコードを実装してチェックボックスリスト型セルのトグルボタンをオン/オフにしたときの動作は次のように変化します。
| 項目 | オフ時の設定 | オン時の設定 |
|---|---|---|
| カスタムサイズ | width: 30, height: 15 | width: 200, height: 100 |
| 自動サイズ | false | true |
| テキスト配置 | right | inside |
| カスタム色 | 前述の表の既定値 | 上記コードの各色 |
| スライダー余白 | 2 | 6 |
| 半径 | 既定値(undefined) | 0 |
| アニメーション速度 | 100 | 500 |
アプリケーションを実行して、チェックボックスリスト型セルの各項目のトグルボタンをオンにすると、下のようにチェックボックス型セルのトグルボタンが変化します。
今回ご紹介した内容については以下のデモアプリケーションで確認できます(“Run Project”をクリックするとデモが起動します)。
さいごに
今回の記事では、「SpreadJS」のチェックボックス型セルとチェックボックスリスト型セルをトグルボタン形式で表示してカスタマイズする方法についてご紹介しました。
製品サイトでは、SpreadJSの機能を手軽に体験できるデモアプリケーションやトライアル版も公開しておりますので、こちらもご確認ください。
また、ご導入前の製品に関するご相談、ご導入後の各種サービスに関するご質問など、お気軽にお問合せください。
