Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

「SPREAD for Windows Forms 10.0J」の新機能~Excel互換機能と編集機能が大幅強化

  • LINEで送る
  • このエントリーをはてなブックマークに追加
目次

よりExcelライクに進化

 SPREADといえば「Excelのような外観と操作性」が最大の特長です。10.0JではさらにExcel互換機能を強化し、よりExcelに近い機能を実現します。

ソート

 ExcelでもSPREADでも非常によく使われている機能の一つがソート(並べ替え)です。SPREADでは8.0J以前のバージョンでもソート機能を搭載しており、列ヘッダのクリックによるソート、またメソッドによるソート実行が可能でした。10.0Jでは、これに加えてフィルタリングのドロップダウンに、「降順」「昇順」や「色で並べ替え」というメニューを追加できるようになり、よりExcelに近いUIが実現できるようになりました。その手順は非常に簡単で、プロパティを設定するだけです。実際にコードを見てみましょう。

 まずは、ソート対象となるサンプルデータを作成します。ここでは便宜的に先頭列のセルに、1~10までの数値と3色の背景色を設定します。

VB.NET
‘ 行数を20行に設定し、先頭の1~10行に数値を設定します。
FpSpread1.Sheets(0).RowCount = 20
For i As Integer = 0 To 10
    FpSpread1.Sheets(0).SetValue(i, 0, i.ToString())
Next

' 3行毎に背景色を設定します。
For i As Integer = 0 To FpSpread1.Sheets(0).RowCount - 1
    If i Mod 3 = 0 Then
        FpSpread1.Sheets(0).Rows(i).BackColor = System.Drawing.Color.Azure
    ElseIf i Mod 3 = 1 Then
        FpSpread1.Sheets(0).Rows(i).BackColor = System.Drawing.Color.Beige
    ElseIf i Mod 3 = 2 Then
        FpSpread1.Sheets(0).Rows(i).BackColor = System.Drawing.Color.LavenderBlush
    End If
Next
C#
// 行数を20行に設定し、先頭の1~10行に数値を設定します。
fpSpread1.Sheets[0].RowCount = 20;
for(int i = 0; i < 10; i++)
{
    fpSpread1.Sheets[0].SetValue(i, 0, i.ToString());
}

// 3行毎に背景色を設定します。
for (int i = 0; i < fpSpread1.Sheets[0].RowCount; i++)
{
    if (i % 3 == 0)
    {
        fpSpread1.Sheets[0].Rows[i].BackColor = System.Drawing.Color.Azure;
    }
    else if (i % 3 == 1)
    {
        fpSpread1.Sheets[0].Rows[i].BackColor = System.Drawing.Color.Beige;
    }
    else if (i % 3 == 2)
    {
        fpSpread1.Sheets[0].Rows[i].BackColor = System.Drawing.Color.LavenderBlush;
    }
}

 次にフィルタリングのドロップダウンにソート機能を追加します。先頭列のソート操作とフィルタリング操作を許可し、AutoFilterModeプロパティで設定できるフィルタリングの種類から拡張フィルタリング(EnhancedContextMenu)を選択します。最後にAutoSortEnhancedContextMenuプロパティをTrueに設定するだけで、フィルタリングのドロップダウンからソートできるようになります。

VB.NET
FpSpread1.Sheets(0).Columns(0).AllowAutoFilter = True
FpSpread1.Sheets(0).Columns(0).AllowAutoSort = True
FpSpread1.Sheets(0).AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu
FpSpread1.Sheets(0).AutoSortEnhancedContextMenu = True
C#
fpSpread1.Sheets[0].Columns[0].AllowAutoFilter = true;
fpSpread1.Sheets[0].Columns[0].AllowAutoSort = true;
fpSpread1.Sheets[0].AutoSortEnhancedContextMenu = true;
fpSpread1.Sheets[0].AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu;

 これだけの設定で、フィルタリングのドロップダウンにソートに関するメニュー(上部3つ)が追加されます。

フィルタリングのドロップダウンにソートメニューが追加
フィルタリングのドロップダウンにソートメニューが追加

 また、「色で並べ替え」メニューから開かれるサブメニューより「ユーザー設定の並べ替え…」を選択すると、複数のキーで並べ替えを行うためのダイアログが表示されます。

複数キーでの並べ替えが設定可能
複数キーでの並べ替えが設定可能

 この新機能は製品ヘルプの「ユーザー設定の並べ替えダイアログの追加」で解説しています。ソートやフィルタリングに関しては、範囲指定のソートやユーザーが条件を入力できるフィルタリングなど、さまざまな機能を用意しています。製品ヘルプの「ソート」「フィルタリング」で機能を紹介していますので、ご一読ください。

ステータスバー

 Excelの便利機能の一つにステータスバーが挙げられます。たとえば、複数のセルを選択すると、その範囲に含まれるセルの合計や平均値が表示されます。合計や平均の数式を設定する必要もなく、ちょっとした集計値を確認したいときなど、とても便利です。また、シートを拡大・縮小するズームスライダーは、画面の小さいタブレットやモバイルPCの使用時には重宝します。同等の機能をもつステータスバーがSPREADにも追加することができるようになりました。

 設定はとても簡単で、FpSpreadクラスのStatusBarVisibleプロパティをTrueにするだけです。

VB.NET
FpSpread1.StatusBarVisble = True
C#
fpSpread1.StatusBarVisible = true;

 セルに適当な数値を入力し、選択するだけでステータスバーには平均、データの個数、合計が表示され、またズームスライダーと拡大率も既定で表示されます。

ステータスバーを表示
ステータスバーを表示

 ステータスバーを右クリックすると、ステータスバーに表示するメニューを選択でき、エンドユーザーが表示項目を自由にカスタマイズすることができます。

ステータスバーの表示項目を変更できる
ステータスバーの表示項目を変更できる

 既定の設定でも充分な機能を持つSPREADのステータスバーですが、背景色や文字色、フォントなどのスタイルを変更することもできます。詳細は製品ヘルプの「ステータスバーの追加」で解説しています。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5