選択したセルに罫線を設定する
今度は、選択したセルに罫線を設定する機能を組み込みます。これは、まず罫線用のオブジェクトを作成し、これをCells
オブジェクトのBorder
プロパティに設定するだけです。
標準の罫線の設定
FpSpreadコンポーネントは、設定できる罫線の種類が豊富で、それぞれ線の形状ごとにオブジェクトになっていますので、どの形状の罫線を使うのかを決めておく必要があります。今回は、標準とべベルの2種類の罫線を設定するようにします。
標準の罫線は、LineBorder
オブジェクトを使用します。FarPoint.Win.LineBorder
型の変数を用意し、LineBorder
クラスのコンストラクタを実行します。コンストラクタの引数は2つで、線の色をColor
構造体のメンバで、線の太さを整数で指定します。
そして、作成したオブジェクトをCells
プロパティに設定します。選択範囲の把握は、背景色の設定のコードと同じです。
Dim lBorder As New FarPoint.Win.LineBorder(Bordercolor, 1) Me.FpSpread1.ActiveSheet.Cells(Startrowno, _ Startcolno, _ Endrowno, _ Endcolno).Border = lBorder
FarPoint.Win.LineBorder lBorder
= new FarPoint.Win.LineBorder(Bordercolor, 1);
fpSpread1.ActiveSheet.Cells[Startrowno,
Startcolno,
Endrowno,
Endcolno].Border = lBorder;
べベルの罫線の設定
べベルタイプの罫線では、BevelBorder
を作成しCells
プロパティに設定します。FarPoint.Win.BevelBorder
の変数を用意し、BevelBorder
クラスのコンストラクタを実行します。コンストラクタはオーバーロードになっていますので、ここでは引数が4つあるコンストラクタを使用しています。
最初の引数には、べベルの形状を「Raised」(盛り上がり)にするのか「Lowered」(くぼみ)にするのかを、BevelBorderType
列挙型のメンバで指定します。2番目の引数ではハイライトとなる線の色を、3番目の引数には影となる線の色を、それぞれColor
構造体のメンバで指定します。4番目の引数には、線の太さを指定します。
ここでは、べべルの形状をRaisedにします。こうすると、罫線が盛り上がっている分、セルがくぼんだように見えます。ハイライトの色はユーザーが選んだ色にし、影を暗い灰色にしています。
Dim lBorder _ As New FarPoint.Win.BevelBorder(FarPoint.Win.BevelBorderType.Raised,_ Bordercolor, Color.DarkGray,1) Me.FpSpread1.ActiveSheet.Cells(Startrowno, _ Startcolno, _ Endrowno, _ Endcolno).Border = lBorder
FarPoint.Win.BevelBorder lBorder
= new FarPoint.Win.BevelBorder(FarPoint.Win.BevelBorderType.Raised,
Bordercolor, Color.DarkGray,1);
fpSpread1.ActiveSheet.Cells[Startrowno,
Startcolno,
Endrowno,
Endcolno].Border = lBorder;
罫線の色の設定
背景色の色の設定と同じで、ColorDialogコントロールを使って色の選択ダイアログボックスを表示し、ユーザーが選んだ色を変数Bordercolor
に格納します。
Private Sub 罫線色ToolStripMenuItem_Click(ByVal sender _ As System.Object, ByVal e As System.EventArgs) _ Handles 罫線色ToolStripMenuItem.Click Dim ret As Integer ret = Me.ColorDialog1.ShowDialog() If ret = DialogResult.OK Then Bordercolor = Me.ColorDialog1.Color End If End Sub
private void 罫線色ToolStripMenuItem_Click(object sender, EventArgs e) { DialogResult ret; ret = ColorDialog1.ShowDialog(); if (ret == DialogResult.OK) { Bordercolor = ColorDialog1.Color; } }
罫線の取り消し処理
一度設定した罫線を元に戻して線のない状態にすることができます。これは、Cells
オブジェクトのResetBorder
メソッドを実行するだけです。
Me.FpSpread1.ActiveSheet.Cells(Startrowno, _
Startcolno, _
Endrowno, _
Endcolno).ResetBorder()
fpSpread1.ActiveSheet.Cells[Startrowno, Startcolno, Endrowno, Endcolno].ResetBorder();
まとめ
セルの塗りつぶしと罫線設定の機能を組み込んでみましたが、ポイントは「ユーザーが選択したセル範囲をどうやって把握するのか」です。FpSpreadコンポーネントでは、矩形に選択された場合は、その範囲の先頭と最後のセルの行列番号を調べることで、簡単にオブジェクトとして把握することができます。
後は、オブジェクトのプロパティやメソッドを実行するだけなので、どのようなインターフェイスでユーザーに操作系を提供すればよいのかを考えることに集中できるため、プログラマの負担もぐっと軽くなります。