SSpread

Q1 36
SSpread上のセルデータの文字列を検索したい
A1 36
以下TIPS集と同様に、セルデータの文字列を検索することが可能です。
 TIPS集>CSVDocument>Csv_003
    CSVのセルデータの一部の文字列を検索して抽出したい。

実装方法をサンプルに沿ってご案内いたします。
サンプルでは、検索対象データを一旦変数「t_data」へ格納します。
次に、検索範囲のセルデータをSSpread.GetTextメソッドで取得します。
セルデータと検索対象文字列を比較して、セルデータに検索文字列が
存在するかをチェックします。
セルデータに検索対象文字列があれば、背景色を赤くします。

[サンプルコード]
Form Sspd50_036 {
・・・
 SSpread SSpread1 {
  ・・・
 }

 TextBox TextBox1 {
 ・・・
 }

 Label Label1 {
  ・・・
 }

 Button Button1 {
  ・・・
  Function OnTouch( e ) {
   var t_data = ^.TextBox1.Value;
   
   if(t_data == ""){
    MessageBox("検索する文字列を入力してください。");
    return;
   }
   
   /* 処理が終了するまで再描画禁止 */
   ^.SSpread1.ReDraw = $FALSE;
   
   /* 背景色の初期化 */
   ^.SSpread1.Col = -1;
   ^.SSpread1.Row = -1;
   ^.SSpread1.BackColor = $STD;   
   
   /* 検索開始列 */
   var s_col = 1;
   /* 検索終了列 */
   var e_col = ^.SSpread1.MaxCols;
   
   /* 検索開始行 */
   var s_row = 1;
   /* 検索終了行 */
   var e_row = ^.SSpread1.MaxRows;
   
   var err_fg = 1;
   var i;
   var j;
   var data;
   var fin_data;
   
   /* 列をループ */
   for(i = s_col; i <= e_col; i ++ ){
    /* 行をループ */
    for(j = s_row; j <= e_row; j ++ ){
     /* セルの値を文字列として取得 */
     data = ^.SSpread1.GetText(i, j);
     
     /* セルの値に検索文字列が存在するかチェック */
     fin_data = find(data, t_data, 0);
     
     if(fin_data != -1){
      /* 検索対象文字列がある場合は、背景色を赤へ変更 */
      ^.SSpread1.Col = i;
      ^.SSpread1.Row = j;
      ^.SSpread1.BackColor = $FFCCCC;
      
      err_fg = 0;
     }
    }
   }
   if(err_fg){
    MessageBox("該当するデータが存在しません。");
   }
   
   /* 処理が終了後、再描画 */
   ^.SSpread1.ReDraw = $TRUE;
  }
 }
}

ただし、大量のデータを扱う場合、Biz/Browser上で処理をすると
処理速度に影響が出ます。
データ量によってはサーバ側で処理をし、計算結果をデータとして
Biz/Browserへ渡すといった方法が適している場合もあります。

CRSファイル形式のサンプル
 「SSpread上のセルデータの文字列を検索したい(Sspd50_036.zip)」
で実際の動作をご確認頂けます。

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