はじめまして。
学生でVBを使用しているのですが、どうしても分からない所があるので教えてください。
言葉足らずな部分があると思いますが、よろしくお願いします。
VisualBasic2010を使用しています。
私が作成したい機能は、
1、テキストボックスとコンボボックスで必要な情報を記入・選択
2、登録ボタンを押して登録
3、登録した内容がデータグリッドビューに表示される(削除・変更も可能)
4、分析ボタンを押すとコンボボックスの内容の数をかぞえる
私がつまずいている部分は4の「分析機能」です。
分析を押すと、数は表示されるようになりましたが
全て「0」が表示されてしまいます。
データグリッドビューの内容を検索して数をかぞえる方法が分からなくて
困っています・・。
つまずいている部分のコードを載せておきます。
どうぞお力を貸してください。
----------------------------------------------------------
Private Sub bunnseki_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bunnseki_Button.Click
'数の宣言
Dim ACount As Double = 0
Dim BCount As Double = 0
Dim CCount As Double = 0
Dim DCount As Double = 0
Dim FCount As Double = 0
'個数をカウント
For i As Integer = 0 To listTask.Count - 1
'オブジェクトを取り出す
Dim selectedTask As Task = listTask(DataGridViewTask.Rows(i).Index)
'タスクデータを取り出す
selectedTask.GetData(TextBox.Text, A_ComboBox.Text, B_ComboBox.Text)
If A_ComboBox.Text = "A" Then
ACount += 1
ElseIf A_ComboBox.Text = "B" Then
BCount += 1
ElseIf A_ComboBox.Text = "C" Then
CCount += 1
ElseIf A_ComboBox.Text = "D" Then
DCount += 1
ElseIf A_ComboBox.Text = "F" Then
FCount += 1
End If
Next
'項目の数を表示
A_Label.Text = ACount.ToString
B_Label.Text = BCount.ToString
C_Label.Text = CCount.ToString
D_Label.Text = DCount.ToString
F_Label.Text = FCount.ToString
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
サンプルプログラム↓
※実行する前にボタン、コンボボックス型の列をもつDataGridViewを配置してください。
Private Sub 分析ボタン_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 分析ボタン.Click
Try
'コンボボックスにAが設定されているレコード件数を表示
MsgBox("Aの合計=" & カウント("A").ToString)
'コンボボックスにBが設定されているレコード件数を表示
MsgBox("Bの合計=" & カウント("B").ToString)
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace, MsgBoxStyle.Critical)
End Try
End Sub
Private Function カウント(ByVal in_検索値 As String) As Integer
'変数宣言
Dim コンボボックス選択値 As String = String.Empty
Try
'カウンター初期化
カウント = 0
For intRowCnt As Integer = 0 To Me.DataGridView1.Rows.Count - 1
'コンボボックスの値選択値を取得
コンボボックス選択値 = DataGridView1.Rows(intRowCnt).Cells(0).Value
If in_検索値.Equals(コンボボックス選択値) = True Then
'カウンタ更新
カウント += 1
End If
Next
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace, MsgBoxStyle.Critical)
End Try
No.2
- 回答日時:
こんにちは。
下の図のようなイメージだと、下記のコードで取得できます。
サンプルプログラム↓
※実行する前に、ボタンとコンボボックス型の列をもつDataGridViewを配置してください。
Private Sub 分析ボタン_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 分析ボタン.Click
Try
'コンボボックスにAが設定されているレコード件数を表示
MsgBox("Aの合計=" & カウント("A").ToString)
'コンボボックスにBが設定されているレコード件数を表示
MsgBox("Bの合計=" & カウント("B").ToString)
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace, MsgBoxStyle.Critical)
End Try
End Sub
Private Function カウント(ByVal in_検索値 As String) As Integer
'変数宣言
Dim コンボボックス選択値 As String = String.Empty
Try
'カウンター初期化
カウント = 0
For intRowCnt As Integer = 0 To Me.DataGridView1.Rows.Count - 1
'コンボボックスの値選択値を取得
コンボボックス選択値 = DataGridView1.Rows(intRowCnt).Cells(0).Value
If in_検索値.Equals(コンボボックス選択値) = True Then
'カウンタ更新
カウント += 1
End If
Next
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace, MsgBoxStyle.Critical)
End Try
No.1
- 回答日時:
疑問点
>1、テキストボックスとコンボボックスで必要な情報を記入・選択
コントロールのテキストボックス、コンボボックス?
DataGridView上のテキストボックス、コンボボックス?
>4、分析ボタンを押すとコンボボックスの内容の数をかぞえる
1と同件
コントロールのテキストボックス、コンボボックス?
DataGridView上のテキストボックス、コンボボックス?
処理を見た感じ、コントロールのテキストボックス、コンボボックスのようではありますが。
>'オブジェクトを取り出す
>Dim selectedTask As Task = listTask(DataGridViewTask.Rows(i).Index)
>'タスクデータを取り出す
>selectedTask.GetData(TextBox.Text, A_ComboBox.Text, B_ComboBox.Text)
listTaskメソッドはどのような動きをする処理ですか?
さて本題ですが、わかっている事象から処理をさかのぼっていけば、直し方がわからなくても、落ちている箇所までは特定できるかと思います。
>全て「0」が表示されてしまいます。
とある以上、A_ComboBox.Textの値はA~Fのいずれの値でもない。
または、下記処理でバグがあり判定が行えていない。
>'オブジェクトを取り出す
>Dim selectedTask As Task = listTask(DataGridViewTask.Rows(i).Index)
>'タスクデータを取り出す
>selectedTask.GetData(TextBox.Text, A_ComboBox.Text, B_ComboBox.Text)
可能性があります。
オブジェクト取り出し処理とタスクデータ取り出し処理で不具合があるか、使い方を間違っているかのような気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 配列にしたセル範囲でのコメントがあるかどうかを取得するコードの書き方 2 2022/09/17 05:09
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) テーブルを配列に入れて、元のテーブルの行番号を取得したい 1 2022/08/16 20:15
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
フォームの再読み込み
-
Access VBA でデータペーストを...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
.NET(VB)でボタンの連打を防止...
-
プロシージャからイベントをコ...
-
VBA(エクセル)で自動的にボタン...
-
F10ボタンでMsgboxを開くとwind...
-
他フォームのクリックイベント取得
-
エクセルVBAでユーザーフォーム...
-
オプションボタンによっての表...
-
Excel マクロ 閉じるボタン
-
動的に作成したボタンオブジェ...
-
ボタンの状態
-
button をクリックしてもへこま...
-
ボタンコントロールの改行(Win...
-
【vb2005】 動的に作成されたCo...
-
初歩の質問です。
-
[Excel VBA]コマンドボタンの入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
プロシージャからイベントをコ...
-
他のアプリケーションとの連携
-
閉じると「+」になり開くと「-...
-
C#で動的に作ったtextboxを消す。
-
ボタンをマウスで押し続けたと...
-
VBA でのボタンの移動について
-
ボタン
-
CommandButtonのCaptionを変化...
-
TextBoxでEnterキーを押すと、...
-
VB.net でトグルボタンを実現し...
おすすめ情報