SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

より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のステータスバーですが、背景色や文字色、フォントなどのスタイルを変更することもできます。詳細は製品ヘルプの「ステータスバーの追加」で解説しています。

次のページ
名前ボックス

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)連載記事一覧

もっと読む

この記事の著者

グレープシティ株式会社 SPREADチーム(グレープシティカブシキガイシャ スプレッドチーム)

 宮城県仙台市に本社を構えるグレープシティでは、日本の業務に適したシステムをより早く開発するためのソフトウェアを提供しています。エンドユーザーの利用しやすさ、幅広いユーザー環境への対応、そして何よりプログラマの作業を軽減することを一番に目指しています。 SPREADは、ExcelライクなUIを実現するグリッドコンポーネントの定番として、日本のみならず全世界で数多くの開発者に利用されている製品。同チームはWindows Forms、ASP.NET、WPFといった.NET向け製品のほか、HTML...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10062 2017/03/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング