シートの余白(グレー領域)をセルで埋めるには?
対象製品
El Tabelle for .NET
詳細
シートを一番右下までスクロールすると、セルのサイズとシートのサイズの差が余白となり、グレー領域が表示されます。シートのサイズを予め調節することでグレー領域を目立たなくすることはできますが、セルのサイズをシートに合わせて調節することでグレー領域をセルで埋めることができます。
El Tabelle のシートのグレー領域のサイズは、次のように簡単な計算で得ることができます。
グレー領域の幅 = シート幅 - (行ヘッダの幅 + 表示されているセル(列)の幅)
グレー領域の幅 = Sheet1.Width - (Sheet1.RowHeaders.Width + Sheet1.Rows(n).Width)
次の関数は、最後のセルのサイズを自動的に調節し、グレー領域をセルで埋めます。
最後までスクロールしたときに表示される列数は、予め実行して確認した値を入れてください。
[Visual Basic]
[C#]
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
'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;
}
//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