MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集 > アウトライン > コーディングによるアウトラインの展開と折りたたみ |
シートに設定されているアウトラインのレベル数や設定されているアウトラインの情報はそれぞれ、GetRangeGroupLevelsメソッドとGetRangeGroupInfoメソッドにより取得することが可能です。また、アウトラインを展開・折りたたみするにはExpandRangeGroupメソッドを使用します。
private void Form1_Load(object sender, EventArgs e) { // 行のアウトラインを設定 fpSpread1.ActiveSheet.AddRangeGroup(0, 4, true); fpSpread1.ActiveSheet.AddRangeGroup(0, 1, true); fpSpread1.ActiveSheet.AddRangeGroup(2, 1, true); // 列のアウトラインを設定 fpSpread1.ActiveSheet.AddRangeGroup(0, 4, false); fpSpread1.ActiveSheet.AddRangeGroup(0, 1, false); fpSpread1.ActiveSheet.AddRangeGroup(2, 1, false); } private void button1_Click(object sender, EventArgs e) { // 行のアウトラインレベル数を取得 int rgl = fpSpread1.ActiveSheet.GetRangeGroupLevels(true); for (int index = 1; index <= rgl; index++) { FarPoint.Win.Spread.RangeGroupInfo[] gi = null; // アウトラインのグループ情報を取得 gi = fpSpread1.ActiveSheet.GetRangeGroupInfo(index, true); for (int giidx = 0; giidx <= gi.Length - 1; giidx++) { // アウトラインを展開します fpSpread1.ActiveSheet.ExpandRangeGroup(gi[giidx], true, true); } } // 列のアウトラインレベル数を取得 int cgl = fpSpread1.ActiveSheet.GetRangeGroupLevels(false); for (int index = 1; index <= cgl; index++) { FarPoint.Win.Spread.RangeGroupInfo[] gi = null; // アウトラインのグループ情報を取得 gi = fpSpread1.ActiveSheet.GetRangeGroupInfo(index, false); for (int giidx = 0; giidx <= gi.Length - 1; giidx++) { // アウトラインを展開します fpSpread1.ActiveSheet.ExpandRangeGroup(gi[giidx], false, true); } } } private void button2_Click(object sender, EventArgs e) { // 行のアウトラインレベル数を取得 int rgl = fpSpread1.ActiveSheet.GetRangeGroupLevels(true); for (int index = 1; index <= rgl; index++) { FarPoint.Win.Spread.RangeGroupInfo[] gi = null; // アウトラインのグループ情報を取得 gi = fpSpread1.ActiveSheet.GetRangeGroupInfo(index, true); for (int giidx = 0; giidx <= gi.Length - 1; giidx++) { // アウトラインを折りたたみます fpSpread1.ActiveSheet.ExpandRangeGroup(gi[giidx], true, false); } } // 列のアウトラインレベル数を取得 int cgl = fpSpread1.ActiveSheet.GetRangeGroupLevels(false); for (int index = 1; index <= cgl; index++) { FarPoint.Win.Spread.RangeGroupInfo[] gi = null; // アウトラインのグループ情報を取得 gi = fpSpread1.ActiveSheet.GetRangeGroupInfo(index, false); for (int giidx = 0; giidx <= gi.Length - 1; giidx++) { // アウトラインを折りたたみます fpSpread1.ActiveSheet.ExpandRangeGroup(gi[giidx], false, false); } } }
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' 行のアウトラインを設定 FpSpread1.ActiveSheet.AddRangeGroup(0, 4, True) FpSpread1.ActiveSheet.AddRangeGroup(0, 1, True) FpSpread1.ActiveSheet.AddRangeGroup(2, 1, True) ' 列のアウトラインを設定 FpSpread1.ActiveSheet.AddRangeGroup(0, 4, False) FpSpread1.ActiveSheet.AddRangeGroup(0, 1, False) FpSpread1.ActiveSheet.AddRangeGroup(2, 1, False) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' 行のアウトラインレベル数を取得 Dim rgl As Integer = FpSpread1.ActiveSheet.GetRangeGroupLevels(True) For index As Integer = 1 To rgl Dim gi() As FarPoint.Win.Spread.RangeGroupInfo ' アウトラインのグループ情報を取得 gi = FpSpread1.ActiveSheet.GetRangeGroupInfo(index, True) For giidx As Integer = 0 To gi.Length - 1 ' アウトラインを展開します FpSpread1.ActiveSheet.ExpandRangeGroup(gi(giidx), True, True) Next Next ' 列のアウトラインレベル数を取得 Dim cgl As Integer = FpSpread1.ActiveSheet.GetRangeGroupLevels(False) For index As Integer = 1 To cgl Dim gi() As FarPoint.Win.Spread.RangeGroupInfo ' アウトラインのグループ情報を取得 gi = FpSpread1.ActiveSheet.GetRangeGroupInfo(index, False) For giidx As Integer = 0 To gi.Length - 1 ' アウトラインを展開します FpSpread1.ActiveSheet.ExpandRangeGroup(gi(giidx), False, True) Next Next End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' 行のアウトラインレベル数を取得 Dim rgl As Integer = FpSpread1.ActiveSheet.GetRangeGroupLevels(True) For index As Integer = 1 To rgl Dim gi() As FarPoint.Win.Spread.RangeGroupInfo ' アウトラインのグループ情報を取得 gi = FpSpread1.ActiveSheet.GetRangeGroupInfo(index, True) For giidx As Integer = 0 To gi.Length - 1 ' アウトラインを折りたたみます FpSpread1.ActiveSheet.ExpandRangeGroup(gi(giidx), True, False) Next Next ' 列のアウトラインレベル数を取得 Dim cgl As Integer = FpSpread1.ActiveSheet.GetRangeGroupLevels(False) For index As Integer = 1 To cgl Dim gi() As FarPoint.Win.Spread.RangeGroupInfo ' アウトラインのグループ情報を取得 gi = FpSpread1.ActiveSheet.GetRangeGroupInfo(index, False) For giidx As Integer = 0 To gi.Length - 1 ' アウトラインを折りたたみます FpSpread1.ActiveSheet.ExpandRangeGroup(gi(giidx), False, False) Next Next End Sub