新規に作成したSheetViewでCopyRangeメソッドを実行すると例外が発生する場合がある

文書番号 : 39172     文書種別 : 不具合     登録日 : 2015/11/17     最終更新日 : 2016/04/04
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
状況
修正済み
詳細
新規に作成したSheetViewでCopyRangeメソッドを実行すると例外が発生する場合があります。
 
【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
  --例外(System.ArgumentNullException)が発生します

【サンプルコード】
  Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim mySheet As New FarPoint.Win.Spread.SheetView()
    FpSpread1.Sheets.Count = 1
    mySheet.ColumnCount = FpSpread1.ActiveSheet.ColumnCount
    mySheet.RowCount = FpSpread1.ActiveSheet.RowCount

    mySheet.CopyRange(0, 1, 10, 1, 1, 15, False)
    FpSpread1.Sheets.Insert(1, mySheet)
    FpSpread1.TabStripPolicy = FarPoint.Win.Spread.TabStripPolicy.Always
  End Sub
回避方法
Service Pack 2(v8.0.3503.2008)で修正済み。
Service Pack 2(v8.0.3503.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

CopyRangeメソッドを実行する前にシート名を設定します。

【サンプルコード】
  Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    'Dim mySheet As New FarPoint.Win.Spread.SheetView() ' <== 例外発生
    Dim mySheet As New FarPoint.Win.Spread.SheetView(String.Format("Sheet{0}", FpSpread1.Sheets.Count + 1)) ' <== 対応策
    FpSpread1.Sheets.Count = 1
    mySheet.ColumnCount = FpSpread1.ActiveSheet.ColumnCount
    mySheet.RowCount = FpSpread1.ActiveSheet.RowCount

    mySheet.CopyRange(0, 1, 10, 1, 1, 15, False)
    FpSpread1.Sheets.Insert(1, mySheet)
    FpSpread1.TabStripPolicy = FarPoint.Win.Spread.TabStripPolicy.Always
  End Sub