private void MS_Sort(int colidx) { SortOrder order = this.MainSheet.Columns[colidx].HeaderCell.SortGlyphDirection; if (order == SortOrder.Ascending) { order = SortOrder.Descending; } else { order = SortOrder.Ascending; } if (colidx == 8) // 数値カラム { this.MS_Sort((a, b) => IntTools.Comp( int.Parse("" + a.Cells[colidx].Value), int.Parse("" + b.Cells[colidx].Value) ) * (order == SortOrder.Ascending ? 1 : -1)); } else // その他 ⇒ 文字列カラム { this.MS_Sort((a, b) => StringTools.CompIgnoreCase( "" + a.Cells[colidx].Value, "" + b.Cells[colidx].Value ) * (order == SortOrder.Ascending ? 1 : -1)); } for (int ci = 0; ci < this.MainSheet.ColumnCount; ci++) { this.MainSheet.Columns[ci].HeaderCell.SortGlyphDirection = SortOrder.None; } this.MainSheet.Columns[colidx].HeaderCell.SortGlyphDirection = order; }