シートの余白(グレー領域)をセルで埋めるには?

文書番号 : 11481     文書種別 : 使用方法     最終更新日 : 2003/04/09
文書を印刷する
対象製品
El Tabelle for .NET
詳細
シートを一番右下までスクロールすると、セルのサイズとシートのサイズの差が余白となり、グレー領域が表示されます。シートのサイズを予め調節することでグレー領域を目立たなくすることはできますが、セルのサイズをシートに合わせて調節することでグレー領域をセルで埋めることができます。

El Tabelle のシートのグレー領域のサイズは、次のように簡単な計算で得ることができます。

グレー領域の幅 = シート幅 - (行ヘッダの幅 + 表示されているセル(列)の幅)
グレー領域の幅 = Sheet1.Width - (Sheet1.RowHeaders.Width + Sheet1.Rows(n).Width)

次の関数は、最後のセルのサイズを自動的に調節し、グレー領域をセルで埋めます。
最後までスクロールしたときに表示される列数は、予め実行して確認した値を入れてください。

[Visual Basic]
'objTarget : 操作対象のシート
'intDisplayedColumns : 最後までスクロールしたときに表示される列数
Public Sub AutofitLastColumnWidth(ByRef objTarget As GrapeCity.Win.ElTabelle.Sheet, ByVal intDisplayedColumns As Integer)

  Dim intLastColumn As Integer = objTarget.MaxColumns - 1
  Dim intHeaderSize As Integer = 0
  Dim intTotalCellSize As Integer = 0
  Dim intGrayAreaWidth As Integer
  Dim i As Integer

  '行ヘッダが表示されている場合に計算対象に含める
  If objTarget.RowHeaders.Visible = True Then
    intHeaderSize = objTarget.RowHeaders.Width
  End If
  '右端の列の幅を取得する
  For i = 0 To intDisplayedColumns - 1
    intTotalCellSize = intTotalCellSize + objTarget.Columns(intLastColumn - i).Width
  Next

  'グレー領域の幅を算出する
  intGrayAreaWidth = objTarget.Width - (intHeaderSize + intTotalCellSize)
  '最後の列の幅を調整する
  objTarget.Columns(intLastColumn).Width = objTarget.Columns(intLastColumn).Width + intGrayAreaWidth

End Sub


[C#]
//objTarget : 操作対象のシート
//intDisplayedColumns : 最後までスクロールしたときに表示される列数
public void AutofitLastColumnWidth(GrapeCity.Win.ElTabelle.Sheet objTarget, int intDisplayedColumns)
{
  int intLastColumn = objTarget.MaxColumns - 1;
  int intHeaderSize = 0;
  int intTotalCellSize = 0;
  int intGrayAreaWidth;

  //行ヘッダが表示されている場合に計算対象に含める
  if(objTarget.RowHeaders.Visible == true)
  {
    intHeaderSize = objTarget.RowHeaders.Width;
  }

  //右端の列の幅を取得する
  for(int i = 0;i < intDisplayedColumns ; i++)
  {
    intTotalCellSize = intTotalCellSize + objTarget.Columns[intLastColumn - i].Width;
  }

  //グレー領域の幅を算出する
  intGrayAreaWidth = objTarget.Width - (intHeaderSize + intTotalCellSize);
  //最後の列の幅を調整する
  objTarget.Columns[intLastColumn].Width = objTarget.Columns[intLastColumn].Width + intGrayAreaWidth;
}

キーワード
HowTo

この文書は、以前は次のFAQ IDで公開されていました : 3367