[{"id":"7720ca38-fc98-4fd8-a3a5-3c0e730c3c72","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"247ded67-b050-4436-be40-fe7b0eeabef7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"9a8c377f-1f1e-476e-b487-c2339da9bed3","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"5e8e6db2-89b9-4184-bbdc-301ee676869e","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"e04b598e-b0d8-4054-bdac-5143d90b3d51","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"edb028d0-a8cc-42b2-acda-42a5515729f0","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"2adde444-20a6-43d7-8896-2b445877327a","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"6ab8ced2-6c7a-41b6-b861-ba066bd40f40","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"0c34aedd-80a3-470b-a0f6-c327a4346be7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"717a5892-fa23-499b-a61d-cff228943aaf","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"bd9be971-69fc-4793-ad6d-234be7a93048","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"a1e8d38f-43d8-4b3e-b747-3fbf7656fcd9","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"d6995fdf-76ee-421f-9e7a-3fb324d14bbb","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"64fa3155-4543-4acd-83b7-f9860fd46673","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"698413bd-0b16-4287-baec-644d98a411d1","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"7e4393a0-21ef-438b-981b-325b64db5baa","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]}]
        
(Showing Draft Content)

フォームコントロール

SpreadJSでは、フォームコントロールをワークシートに追加したり、フォームコントロールを含む既存のExcelファイルを開くことができます。

フォームコントロールを使用すると、シートのセル内のデータを操作できます。次の図に示すように、フォームコントロールを使用して、インタラクティブな入力フォームを作成することができます。

form-controls

SpreadJSでは、次の種類のフォームコントロールがサポートされます。

  • ボタン

  • スピンボタン

  • リストボックス

  • コンボボックス

  • チェックボックス

  • オプションボタン

  • グループボックス

  • ラベル

  • スクロールバー

ワークシートにフォームコントロールを追加するには、GC.Spread.Sheets.Shapes名前空間のaddFormControlメソッドを使用します。この名前空間は、すべての組み込みフォームコントロールを定義するために、FormControlType列挙体を提供します。

フォームコントロールを実装するには、IFormControlOptionsインターフェイスはIOptionButtonFormControlOptionsICheckBoxFormControlOptionsISpinButtonFormControlOptionsIScrollBarFormControlOptionsIListBoxFormControlOptionsIComboBoxFormControlOptions、および IGroupBoxFormControlOptionsなどのオプションを提供します。

また、cellLinkプロパティを使用して、フォームコントロールをセルにリンクできます。これにより、フォームコントロールの値を変更すると、セルの値も変更されます。UIの操作中、API呼び出し中、または関連付けられたセルの値の変更中に、フォームコントロールの値が変更されると、FormControlValueChangedイベントが発生します。

スタイル設定

次の表は、フォームコントロールと、サポートされているスタイル設定を示します。

コントロール

文字のスタイル

文字の配置

塗りつぶし

Excelのサポート

ボタン

X


オプションボタン

グラデーションと塗りつぶしプロパティのみがサポートされます

チェックボックス

グラデーションと塗りつぶしプロパティのみがサポートされます

ラベル

塗りつぶしと塗りつぶし(単色)がサポートされます。

線のスタイルはサポートされません。

グループボックス

X

X

X

コンボボックス

X

X

X

X

リストボックス

〇(フォント)

X(色)

X

X

X

X

スピンボタン

X

X

X

X

スクロールバー

X

X

X

X

スタイル用のAPIはシェイプ用のAPIと一貫性がありますが、すべてのスタイル設定をすべてのフォームコントロールに実装することはできません。

フォームコントロールの追加

次のセクションは、それぞれのフォームコントロールをワークシートに追加する方法について説明します。

ボタン

ワークシートにボタンフォームコントロールを追加するには、FormControlType列挙体のbuttonオプションをaddFormControlメソッドにパラメータとして渡します。textプロパティとstyleプロパティを使用して、ボタンコントロールにテキストとスタイルを設定できます。また、FormControlButtonClicked イベントを使用して、ボタンがクリックされた場合に実行される任意の処理を実装することができます。

button

次のサンプルコードは、ボタンコントロールを追加する方法を示します。

var button = sheet.shapes.addFormControl("button", GC.Spread.Sheets.Shapes.FormControlType.button, 50, 50, 160, 100);
button.text("クリックしてください。");
var style = button.style();
style.textEffect.color = "rgb(0, 0, 0)";
style.textEffect.font = "bold 21px Calibri";
style.textFrame.vAlign = GC.Spread.Sheets.VerticalAlign.center;
style.textFrame.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
button.style(style);
sheet.bind(GC.Spread.Sheets.Events.FormControlButtonClicked, function (s, args) {
    alert("ボタンがクリックされました。");
});  

スピンボタン

ワークシートにスピンボタンフォームコントロールを追加するには、FormControlType列挙体のspinButtonオプションをaddFormControlメソッドにパラメータとして渡します。optionsメソッドを使用して、スピンボタンのオプションを指定し、スピンボタンのvalueを設定できます。また、FormControlValueChanged イベントを使用して、コントロールの値が変更されたときに実行される処理を実装することができます。

spin-button-gif.fa74f0

次のサンプルコードは、スピンボタンコントロールを追加する方法を示します。

var spinButton = sheet.shapes.addFormControl("spin button", GC.Spread.Sheets.Shapes.FormControlType.spinButton, 50, 50, 160, 100);
var options = spinButton.options();
options.minValue = 0;
options.maxValue = 50;
options.step = 1;
options.cellLink = "A1";
spinButton.options(options);
spinButton.value(25);
sheet.bind(GC.Spread.Sheets.Events.FormControlValueChanged, function (s, args) {
    console.log("値が変更されました。", args.newValue);
});

リストボックス

ワークシートにリストボックスフォームコントロールを追加するには、FormControlType列挙体のlistBoxオプションをaddFormControlメソッドにパラメータとして渡します。optionsメソッドを使用して、リストボックスのオプションを指定し、リスト項目や選択タイプを設定し、リストボックスの値を任意のセルにリンクすることができます。これにより、リストボックスコントロールの値を変更すると、セルの値も変更されます。また、FormControlValueChanged イベントを使用して、コントロールの値が変更されたときに実行される処理を実装することができます。

listbox-formcontrol.a7c73d

次のサンプルコードは、リストボックスコントロールを追加する方法を示します。

for (var i = 0; i < 14; i++) {
    sheet.setValue(i, 0, "A" + (i + 1));
}
var listBox = sheet.shapes.addFormControl("list box", GC.Spread.Sheets.Shapes.FormControlType.listBox, 100, 50, 200, 150);
var options = listBox.options();
options.inputRange = "A1:A14";
options.cellLink = "C1";
options.selectionType = GC.Spread.Sheets.Shapes.ListBoxSelectionType.single;
listBox.options(options);
listBox.value(2);
sheet.bind(GC.Spread.Sheets.Events.FormControlValueChanged, function (s, args) {
    console.log("値が変更されました。", args.newValue);
});

コンボボックス

ワークシートにコンボボックスフォームコントロールを追加するには、FormControlType列挙体のcomboBoxオプションをaddFormControlメソッドにパラメータとして渡します。optionsメソッドを使用して、コンボボックスのオプションを指定し、ドロップダウンに表示するリスト項目や表示する個数を設定し、コンボボックスの値を任意のセルをリンクすることができます。これにより、コンボボックスコントロールの値を変更すると、セルの値も変更されます。また、FormControlValueChanged イベントを使用して、コントロールの値が変更されたときに実行される処理を実装することができます。

combobox-formcontrol.561916

次のサンプルコードは、コンボボックスコントロールを追加する方法を示します。

for (let i = 0; i < 14; i++) {
    sheet.setValue(i, 0, "A" + (i + 1));
}
var comboBox = sheet.shapes.addFormControl("comboBox", GC.Spread.Sheets.Shapes.FormControlType.comboBox, 100, 50, 200, 30);
var options = comboBox.options();
options.inputRange = "A1:A14";
options.cellLink = "C1";
options.dropDownLines = 6;
comboBox.options(options);
comboBox.value(1);
sheet.bind(GC.Spread.Sheets.Events.FormControlValueChanged, function (s, args) {
    console.log("値が変更されました。", args.newValue);
});

チェックボックス

ワークシートにチェックボックスフォームコントロールを追加するには、FormControlType列挙体のcheckBoxオプションをaddFormControlメソッドにパラメータとして渡します。optionsメソッドを使用して、チェックボックスのオプションを指定し、スタイルを設定し、チェックボックスの値をセルにリンクすることもできます。また、FormControlValueChanged イベントを使用して、コントロールの値が変更されたときに実行される処理を実装することができます。

checkbox

次のサンプルコードは、チェックボックスコントロールを追加する方法を示します。

var checkBox = sheet.shapes.addFormControl("check box", GC.Spread.Sheets.Shapes.FormControlType.checkBox, 50, 50, 100, 30);
checkBox.text("フットボール");
var options = checkBox.options();
options.cellLink = "C1";
checkBox.options(options);
var style = checkBox.style();
style.fill.type = GC.Spread.Sheets.Shapes.ShapeFillType.solid;
style.fill.color = "green";
style.fill.transparency = 0.5;
style.line.color = "red";
style.line.transparency = 0.5;
style.line.width = 2;
checkBox.style(style);
sheet.bind(GC.Spread.Sheets.Events.FormControlValueChanged, function (s, args) {
    console.log("値が変更されました。", args.newValue);
});

オプションボタン

ワークシートにオプションボタンフォームコントロールを追加するには、FormControlType列挙体のoptionButtonオプションをaddFormControlメソッドにパラメータとして渡します。optionsメソッドを使用して、オプションボタンのオプションを指定し、スタイルを設定したり、セルをリンクすることもできます。また、FormControlValueChanged イベントを使用して、コントロールの値が変更されたときに実行される処理を実装することができます。

optionbutton

次のサンプルコードは、オプションボタンコントロールを追加する方法を示します。

var maleOptionButton = sheet.shapes.addFormControl("male", GC.Spread.Sheets.Shapes.FormControlType.optionButton, 50, 50, 100, 30);
maleOptionButton.text("男");
var options = maleOptionButton.options();
options.cellLink = "C1";
maleOptionButton.options(options);
maleOptionButton.value(true);
var femaleOptionButton = sheet.shapes.addFormControl("female", GC.Spread.Sheets.Shapes.FormControlType.optionButton, 160, 50, 100, 30);
femaleOptionButton.text("女");
var style = femaleOptionButton.style();
style.fill.type = GC.Spread.Sheets.Shapes.ShapeFillType.solid;
style.fill.color = "green";
style.fill.transparency = 0.5;
style.line.color = "red";
style.line.transparency = 0.5;
style.line.width = 2;
femaleOptionButton.style(style);
sheet.bind(GC.Spread.Sheets.Events.FormControlValueChanged, function (s, args) {
    console.log("値が変更されました。", args.newValue);
});

グループボックス

ワークシートにグループボックスフォームコントロールを追加するには、FormControlType列挙体のgroupBoxオプションをaddFormControlメソッドにパラメータとして渡します。optionsメソッドを使用して、グループボックスのオプションを指定し、テキストを追加することもできます。

groupbox

次のサンプルコードは、グループボックスコントロールを追加する方法を示します。

var contactMethod = sheet.shapes.addFormControl("email", GC.Spread.Sheets.Shapes.FormControlType.groupBox, 40, 130, 240, 80);
contactMethod.text("連絡方法");
var email = sheet.shapes.addFormControl("email", GC.Spread.Sheets.Shapes.FormControlType.optionButton, 50, 160, 100, 30);
email.text("電子メール");
var phone = sheet.shapes.addFormControl("phone", GC.Spread.Sheets.Shapes.FormControlType.optionButton, 160, 160, 100, 30);
phone.text("電話番号");
options = phone.options();
options.cellLink = "C6";
phone.options(options);
phone.value(true);
sheet.bind(GC.Spread.Sheets.Events.FormControlValueChanged, function (s, args) {
    console.log("値が変更されました。", args.newValue);
});

グループボックスコントロールを使用して、オプションボタンをグループ化するルールは次のとおりです。

  • 同じグループボックス内のオプションボタンは同じグループに属します。オプションボタンは、グループボックス内に完全に収まっている必要があります。例えば、ボタン部分がグループボックスの外にあり、テキストだけがグループボックス内にあるような場合は、同じグループとみなされません。

  • グループボックス外のすべてのオプションボタンは、同じグループに属します。

  • オプションボタンをセルにリンクすると、同じグループのオプションボタンが同じセルにリンクされます。

ラベル

ワークシートにラベルフォームコントロールを追加するには、FormControlType列挙体のlabelオプションをaddFormControlメソッドにパラメータとして渡します。textプロパティを使用して、ラベルにテキストを追加することもできます。

label

次のサンプルコードは、ラベルコントロールを追加する方法を示します。

var label = sheet.shapes.addFormControl("label", GC.Spread.Sheets.Shapes.FormControlType.label, 50, 50, 160, 30);
label.text("これはラベルです。");

スクロールバー

ワークシートにスクロールバーフォームコントロールを追加するには、FormControlType列挙体のscrollBarオプションをaddFormControlメソッドにパラメータとして渡します。optionsメソッドを使用して、スクロールバーのオプションを指定し、スクロールバーの値をセルにリンクすることもできます。また、FormControlValueChanged イベントを使用して、コントロールの値が変更されたときに実行される処理を実装することができます。

scrollbar

次のサンプルコードは、スクロールバーコントロールを追加する方法を示します。

var scrollBar = sheet.shapes.addFormControl("scrollBar", GC.Spread.Sheets.Shapes.FormControlType.scrollBar, 125, 21, 30, 118);
var options = scrollBar.options();
options.minValue = 1;
options.maxValue = 5;
options.step = 1;
options.pageChange = 2;
options.cellLink = "C1";
scrollBar.options(options);
scrollBar.value(1);
sheet.bind(GC.Spread.Sheets.Events.FormControlValueChanged, function (s, args) {
    console.log("値が変更されました。", args.newValue);
});

デザイナの使用

デザイナでフォームコントロールを使用するには、次の手順を実行します。

  1. リボンの[挿入]タブをクリックし、[コントロール]からフォームコントロールを選択します。

    form-controls-designer


    フォームコントロールがシートに追加されます。

    control-added-sheet.239290


  2. Ctrl+左クリックまたは右クリックでフォームコントロールを選択し、マウスドラッグまたはカーソルキーでコントロールを移動またはサイズ変更します。

    form-control-designer


  3. コントロールを選択し、コンテキストメニューから[図形の書式設定]オプションを選択します。使用するフォームコントロールに応じて、図形、文字、およびコントロールのオプションをカスタマイズします。

フォームコントロールが選択されていない場合、対話的な操作はマウスの左ボタンで直接実行できます。フォームコントロールが選択されている場合、移動またはサイズ変更はできますが、回転はできません。

制限事項

フォームコントロールは、VBAコードとマクロをサポートしていません。