No.1ベストアンサー
- 回答日時:
お世話になります。
DataTable 等をバインドしているのであれば、
DataTable.Select("条件", "ソートする列") の
一番最後の行オブジェクトを取得すれば最大値がとれるはずです。
FlexGrid を使ったのが初めてなので効率があまりよくないかもしれないですが
バインドしていない方は、For 文で FlexGrid の行をがーっとまわして
最大値を取得しています。
以下のコードは、Form10 を作成して、デザイナでは何も手を加えず
Load のイベントですべてのコントロールやイベントの設定を行っています。
各 TabPage に存在する FlexGrid を ダブルクリックすると
最大値をメッセージ表示します。
Public Class Form10
Private Sub Form10_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Controls.Clear()
Dim tab As TabControl = New TabControl()
tab.TabPages.Clear()
tab.Dock = DockStyle.Fill
Me.Controls.Add(tab)
'' データバインドする場合
Dim tabPage1 As TabPage = New TabPage("DataBind")
Dim flex1 As C1.Win.C1FlexGrid.C1FlexGrid = New C1.Win.C1FlexGrid.C1FlexGrid()
flex1.Dock = DockStyle.Fill
' Data Bind
flex1.DataSource = Me.CreateData()
' Double Click した時のイベントを登録
AddHandler flex1.DoubleClick, AddressOf flex1_DoubleClick
tabPage1.Controls.Add(flex1)
tab.TabPages.Add(tabpage1)
'' データバインドしない場合
Dim tabPage2 As TabPage = New TabPage("not DataBind")
Dim flex2 As C1.Win.C1FlexGrid.C1FlexGrid = New C1.Win.C1FlexGrid.C1FlexGrid()
flex2.Dock = DockStyle.Fill
' not Data Bind
Dim dt As DataTable = Me.CreateData()
flex2.Item(0, 1) = dt.Columns(0).ColumnName
flex2.Cols.Item(1).Name = dt.Columns(0).ColumnName
flex2.Cols.Item(1).DataType = GetType(Integer)
For index As Integer = 0 To dt.Rows.Count - 1
flex2.Item(index + 1, 1) = dt.Rows(index)(0)
Next
' Double Click した時のイベントを登録
AddHandler flex2.DoubleClick, AddressOf flex2_DoubleClick
tabPage2.Controls.Add(flex2)
tab.TabPages.Add(tabpage2)
End Sub
'' データバインドしている場合の最大値をメッセージ表示
Private Sub flex1_DoubleClick(ByVal sender As Object, ByVal e As EventArgs)
Dim flex As C1.Win.C1FlexGrid.C1FlexGrid = DirectCast(sender, C1.Win.C1FlexGrid.C1FlexGrid)
Dim dt As DataTable = DirectCast(flex.DataSource, DataTable)
Dim maxRow As DataRow = dt.Select("", "Column1")(dt.Rows.Count - 1)
MessageBox.Show(maxRow("Column1").ToString())
End Sub
'' データバインドしていない場合の最大値をメッセージ表示
Private Sub flex2_DoubleClick(ByVal sender As Object, ByVal e As EventArgs)
Dim flex As C1.Win.C1FlexGrid.C1FlexGrid = DirectCast(sender, C1.Win.C1FlexGrid.C1FlexGrid)
Dim max As Integer = 0
For index As Integer = 1 To flex.Rows.Count - 1
Dim value As Integer = CInt(flex.Item(index, 1))
If max < value Then max = value
Next
MessageBox.Show(max.ToString())
End Sub
Private Function CreateData() As DataTable
Dim dt As DataTable = New DataTable("test")
dt.Columns.Add("Column1", GetType(Integer))
dt.Rows.Add(1)
dt.Rows.Add(12)
dt.Rows.Add(15)
dt.Rows.Add(30)
dt.Rows.Add(21)
Return dt
End Function
End Class
お返事が遅れまして大変申し訳ありません。
教えていただいたコードを参考に、目的の動作を完成
させることができました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- 数学 2*2の行列に対して固有値の最大実部を与えるkの値を求めたい 3 2022/11/08 16:26
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Java Java配列の問題を教えてください。 乱数で20個出力し、最大、最小、合計、平均を求め、更に昇順にソ 3 2023/07/10 18:32
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Flexgridで選択行の列の値を取得したい
Visual Basic(VBA)
-
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
【C#】DataGridViewの最大列数について
システム
-
-
4
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
5
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
6
DataGridViewで指定したセルの値を取得
Visual Basic(VBA)
-
7
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
8
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
9
FlexGridの選択されたセル内の文字色を変える方法
C言語・C++・C#
-
10
配列の中から最大値だけ取り出す方法
Visual Basic(VBA)
-
11
On ErrorでエラーNoが0
Visual Basic(VBA)
-
12
SQLサーバに対するSQL文で抽出した時にないレコードを0で表示させるには?
SQL Server
-
13
変数の参照でエラーが出てしまいます。(VB.NET)
Visual Basic(VBA)
-
14
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
15
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
16
メッセージボックスのボタン名変更
Visual Basic(VBA)
-
17
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
18
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
19
DataGridViewで表示に制限をつけたい。
Visual Basic(VBA)
-
20
DatagridViewの値確定
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
IIF関数の使い方
-
文字列の結合を空白行まで実行
-
vba 2つの条件が一致したら...
-
VBAのFind関数で結合セルを検索...
-
データグリッドビューの一番最...
-
最終列の右へSUM関数を作成する...
-
VBAを使って検索したセルをコピ...
-
Changeイベントでの複数セルの...
-
Cellsのかっこの中はどっちが行...
-
複数csvを横に追加していくマク...
-
VBAの構文 3列置きにコピーし...
-
VBA 何かしら文字が入っていたら
-
エクセル 2つの表の並べ替え
-
VBAで10行おきにセルの下に罫線...
-
【VBA】2つのシートの値を比較...
-
VBScriptでfindを使うには??
-
マクロ 最終列をコピーして最終...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
マクロ 最終列をコピーして最終...
-
VBAを使って検索したセルをコピ...
-
データグリッドビューの一番最...
-
URLのリンク切れをマクロを使っ...
-
VBAのFind関数で結合セルを検索...
-
【VBA】2つのシートの値を比較...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
Excel(M365) Vlookup/セル反転(...
-
VBA指定行削除
-
VBAでのリスト不一致抽出について
-
C# dataGridViewの値だけクリア
-
Changeイベントでの複数セルの...
-
VBAで、特定の文字より後を削除...
-
rowsとcolsの意味
おすすめ情報