スプレッドシートの大きさを、表示する列や行の範囲に合わせて自動調整するには?

文書番号 : 12367     文書種別 : 使用方法     最終更新日 : 2003/09/11
文書を印刷する
対象製品
El Tabelle for .NET
詳細
SPREAD(ActiveX)には、表示する列数や行数に合わせてスプレッドシートを最適な大きさに調節する AutoSize、VisibleCols、VisibleRows などの機能がありましたが、El Tabelle には同様の機能は備わっていません。

スプレッドシートの大きさを、表示する列や行の範囲に合わせて自動調整するには、次の関数を参考にコーディングを行ってください。

[Visual Basic]
Private Sub SheetAutoSize(ByRef TargetSheet As GrapeCity.Win.ElTabelle.Sheet, _
  ByVal Columns As Integer, ByVal Rows As Integer)

  Dim intHScrollBarHeight As Integer = TargetSheet.Parent.Size.Height - TargetSheet.Size.Height
  Dim intVScrollBarWidth As Integer = TargetSheet.Parent.Size.Width - TargetSheet.Size.Width
  Dim intColumnsWidth As Integer
  Dim intRowHeight As Integer
  Dim intStartColum As Integer = TargetSheet.TopLeft.Column
  Dim intStartRow As Integer = TargetSheet.TopLeft.Row
  Dim i As Integer

  For i = intStartColum To Columns + intStartColum - 1
    intColumnsWidth = intColumnsWidth + TargetSheet.Columns(i).Width
  Next

  For i = intStartRow To Rows + intStartRow - 1
    intRowHeight = intRowHeight + TargetSheet.Rows(i).Height
  Next

  TargetSheet.Parent.Size = New Size(intColumnsWidth + intVScrollBarWidth + TargetSheet.RowHeaders.Width, _
    intRowHeight + intHScrollBarHeight + TargetSheet.ColumnHeaders.Height)
End Sub

'呼び出し例
SheetAutoSize(Sheet1, 2, 3)


[C#]
private void SheetAutoSize(GrapeCity.Win.ElTabelle.Sheet TargetSheet,
  int Columns, int Rows)
{
  int intHScrollBarHeight = TargetSheet.Parent.Size.Height - TargetSheet.Size.Height;
  int intVScrollBarWidth = TargetSheet.Parent.Size.Width - TargetSheet.Size.Width;
  int intColumnsWidth = 0;
  int intRowHeight = 0;
  int intStartColum = TargetSheet.TopLeft.Column;
  int intStartRow = TargetSheet.TopLeft.Row;
  int i;

  for(i = intStartColum;i <= Columns + intStartColum - 1;i++)
  {
    intColumnsWidth = intColumnsWidth + TargetSheet.Columns[i].Width;
  }

  for(i = intStartRow;i <= Rows + intStartRow - 1;i++)
  {
    intRowHeight = intRowHeight + TargetSheet.Rows[i].Height;
  }

  TargetSheet.Parent.Size = new Size(intColumnsWidth + intVScrollBarWidth + TargetSheet.RowHeaders.Width,
    intRowHeight + intHScrollBarHeight + TargetSheet.ColumnHeaders.Height);
}

//呼び出し例
SheetAutoSize(sheet1, 2, 3);

キーワード
HowTo

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