今回は、SPREADのヘッダカラム及び、通常のシート上のセルの連結方法についてです。
ヘッダカラムのプロパティ「ColumnHeader」の「Cells」で連結するセルの「ColumnSpan」プロパティに そのカラムから右方向に連結するセル数を指定します。
通常のシート上のカラムも同様に「Cells」で指定したセルの「ColumnSpan」を設定します。
以下のソースは、フォームロード時にSPREADの初期化を行っています。 アクティブシートのカラム数、ヘッダ行数を設定した後で、 ヘッダカラムに、行位置とカラム位置を文字列化したものを設定しています。
フォーム表示後、ボタンをクリックすると、ヘッダの1行目のカラムを1個置きに連結します。 また、シート上のカラムを1行置きに、2個ずつ連結しています。
下図は、最初、フォームが表示された時の様子です。
その後、ボタンをクリックした結果が以下の図です。
尚、ActiveSheetのメソッドである「AddColumnHeaderSpanCell」「AddSpanCell」を使っても同様のことができます。 このメソッドは上記の、「ColumnSpan」プロパティへの設定を行っているだけだとは思いますが。
=====
2016/02/29:の時の情報
ヘッダカラムのプロパティ「ColumnHeader」の「Cells」で連結するセルの「ColumnSpan」プロパティに そのカラムから右方向に連結するセル数を指定します。
通常のシート上のカラムも同様に「Cells」で指定したセルの「ColumnSpan」を設定します。
以下のソースは、フォームロード時にSPREADの初期化を行っています。 アクティブシートのカラム数、ヘッダ行数を設定した後で、 ヘッダカラムに、行位置とカラム位置を文字列化したものを設定しています。
フォーム表示後、ボタンをクリックすると、ヘッダの1行目のカラムを1個置きに連結します。 また、シート上のカラムを1行置きに、2個ずつ連結しています。
Public Class Form1
'フォームロード時にSPREADの初期化
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'SPREADがフォーカスを持っていないときにセル枠の表示をしない設定
Me.FpSpread1.RetainSelectionBlock = False
'SPREADのアクティブシートのカラム数を6に設定
Me.FpSpread1.ActiveSheet.ColumnCount = 6
'SPREADのアクティブシートのヘッダ行数を2に設定
Me.FpSpread1.ActiveSheet.ColumnHeaderRowCount = 2
'ヘッダカラムに文字列設定
For row As Integer = 0 To Me.FpSpread1.ActiveSheet.ColumnHeaderRowCount - 1
For i As Integer = 0 To Me.FpSpread1.ActiveSheet.ColumnCount - 1
'行位置 + " - " + カラム位置
Me.FpSpread1.ActiveSheet.ColumnHeader.Cells(row, i).Value = row & " - " & i
Next
Next
End Sub
'ボタンクリックでカラム連結処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'ヘッダーのカラムを2個ずつ連結する
For i As Integer = 0 To Me.FpSpread1.ActiveSheet.ColumnCount / 2 - 1
Me.FpSpread1.ActiveSheet.ColumnHeader.Cells(0, i * 2).ColumnSpan = 2
Next
'シート上のカラムを1行おきに、2個ずつ連結する
For row As Integer = 0 To Me.FpSpread1.ActiveSheet.RowCount - 1
'行番号が偶数??
If row Mod 2 = 0 Then
'カラムを2個ずつ連結する
For i As Integer = 0 To Me.FpSpread1.ActiveSheet.ColumnCount / 2 - 1
Me.FpSpread1.ActiveSheet.Cells(row, i * 2).ColumnSpan = 2
Next
End If
Next
End Sub
End Class
下図は、最初、フォームが表示された時の様子です。
その後、ボタンをクリックした結果が以下の図です。
尚、ActiveSheetのメソッドである「AddColumnHeaderSpanCell」「AddSpanCell」を使っても同様のことができます。 このメソッドは上記の、「ColumnSpan」プロパティへの設定を行っているだけだとは思いますが。
'ボタンクリックでカラム連結処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'行ヘッダーのカラムを2個ずつ連結する
For i As Integer = 0 To Me.FpSpread1.ActiveSheet.ColumnCount / 2 - 1
Me.FpSpread1.ActiveSheet.AddColumnHeaderSpanCell(0, i * 2, 1, 2)
Next
'シート上のカラムを1行おきに、2個ずつ連結する
For row As Integer = 0 To Me.FpSpread1.ActiveSheet.RowCount - 1
'行番号が偶数??
If row Mod 2 = 0 Then
'カラムを2個ずつ連結する
For i As Integer = 0 To Me.FpSpread1.ActiveSheet.ColumnCount / 2 - 1
Me.FpSpread1.ActiveSheet.AddSpanCell(row, i * 2, 1, 2)
Next
End If
Next
End Sub
=====
2016/02/29:の時の情報
PR
コメント