Spread

Q
Spreadのセルを書き込み可能とする
[内容]
Spreadでセルに入力したい

A
[原因]
通常のセルでは直接入力は出来ません。

[解決方法]
スプレッドシートを表現するオブジェクトSpreadのSetEditメソッドにより、セルにTextBoxを貼り付けます。StartEditとStopEditイベントハンドラにより貼り付け、解除を制御します。

【注意】
セルにオブジェクトを貼り付けることが出来ますが、貼り付けたオブジェクトは常時表示出来ず、あくまでイベントの延長で表示されます。常に別オブジェクトをセルに表示したスプレッドシートを作ることはできません。


[サンプルコード]


Spreadのブレースの中に以下を記述。この例は、1列目のセルクリックによりTextBoxをセルに貼り付け、別セルがクリックされた時に、内容を2列目にコピーしています。
・Spreadのブレースの中に以下を記述します。 

Function OnStartEdit( e ) {
    if( e.col == 0 ) {
        Form1.TextBox1 = SpreadRow1[e.row].SpreadColumn1;
        SetEditor(Form1.TextBox1);
        Form1.TextBox1.SetFocus();
        Form1.TextBox1.Visible = $TRUE;
    }
}
Function OnStopEdit( e ) {
    if( e.col == 0 ) {
        SpreadRow1[e.row].SpreadColumn1 = Form1.TextBox1;
        SpreadRow1[e.row].SpreadColumn2 = halfp(Form1.TextBox1);
        Form1.TextBox1.Visible = $FALSE;
        SetEditor();
    }
}
・TextBoxは非表示にして作成しておきます。
Spreadの表示の下に隠しておく方法でも良いです。
TextBox TextBox1 {
    X = 100;
    Y = 300;
    Width = 100;
    Height = 20;
    FontSize = 14;
    FgColor = $DBLUE;
    Visible = $False;
    IMEMode = $OPEN;
    FontFace = $ITALIC+$BOLD;
}
CRSファイル形式のサンプルを
  「セルへの書き込みが可能なSpreadサンプル(Spd_003.zip)
よりご利用いただけます。

管理番号:Spd_003
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ