SSpread

Q1 19
セルに文字を入力した際、自動でセルの高さを調整したい  
[内容]
セルに入力した文字の折り返しが発生したり、セルの高さを超える複数行の文字入力を行った場合、文字全体を見えるように自動で高さを調整するにはどうすればよいか。
A1 19
SSpreadクラスにはセルへ入力した文字列(テキスト)の表示に必要な高さを取得するMaxTextRowHeightプロパティがあります。
このプロパティを利用して、文字入力後、行の高さを再設定する事で自動にセルの高さが調整されたような動作を実現できます。

また、文字入力完了のタイミングで高さの調整を行うのであれば、セルの入力モードがOFFになったときに発生するEditModeOffイベントとの組合せをお勧めします。

[サンプルコード]
SSpread SSpread1 {
  X = 16;
  Y = 123;
  Width = 402;
  Height = 215;
  
  Col = -1;
  Row = -1;
  /* 文字型セルで、セルに複数行の入力を可能に設定 */
  TypeEditMultiLine = $TRUE;
  /* 方向キー押下でセルを移動 
    ※Ctrl+方向キー押下の場合は、セル内でのカーソル移動
  */
  ArrowsExitEditMode = $TRUE;
  
  Function OnEditModeOff( e ) {
   /* セルの入力モードがOFFになったときに
   発生イベントのイベントハンドラ */
   if(GetText(e.Col, e.Row) == ""){
    /* セルへの入力がない場合 */
    RowHeight(e.Row) = 15;
   }else{
    /* セルへの入力がある場合、行に設定されているフォントサイズを
    基準にテキストの表示に必要な高さを設定 */
    RowHeight(e.Row) = MaxTextRowHeight(e.Row);
   }
  }
 }

CRSファイル形式のサンプル
  「セルに文字を入力した際、自動でセルの高さを調整したい(Sspd50_019.zip)
で実際の動作をご確認いただけます。


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