
Visual Basic 2008 を使っています。
DataGridViewで複数の行を選択したとき、それぞれが何行目なのかを取得するにはどうしたらいいでしょうか?
具体的には、複数選択されている行の0列目の値をテキストボックスに表示するという動作を行いたいです。
自分で書いたコードをペーストしておきます。
Dim count As Integer = Me.DataGridView1.SelectedRows.Count
For count = 0 To count - 1
Dim test As String
test = Me.DataGridView1.Rows(?何行目か).Cells(0).Value
Me.TextBox4.Text = test & "が選択されています。" & vbCrLf & zenkai
Dim zenkai As String = Me.TextBox1.Text
Next
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
最初の質問文で
> 具体的には、複数選択されている行の0列目の値をテキスト
> ボックスに表示するという動作を行いたいです。
と書いてあるのが0行目だと伝わったんでしょう。
・・・私も最初そう読みましたから。
選択行の取得からインデックス0で取り出しても見た目の0行目
とは食い違うので、ソートして0行目だけ取り出すサンプルコード
ですね。選択行は全て取得できているので、そのまま全部取り出す
コードに変えてください。
中学生レベルの英語能力で、何を命令しているかの概要を掴む事は
数日の勉強で可能なはずです。安易に結論を出し、回答者の責任に
する前に、自分でよく検証してください。
No.2
- 回答日時:
> 上のコードをボタン1のクリックにイベントにコピペしてみたの
> ですが、ボタン1を押すと実行画面が勝手に終了してしまいました・・・。
そんな動作の原因になるコードじゃないですね。
実行画面が勝手に終了するのは別の問題ではないでしょうか。
> プログラミングを習って三ヶ月ほどなのでコードなど全然読めない
> のですが、私がやりたいこととは少し違うかなと思いました。
中学生レベルの英語能力で、何を命令しているかの概要を掴む事は
数日の勉強で可能なはずです。安易に結論を出し、回答者の責任に
する前に、自分でよく検証してください。
この回答への補足
実行画面が終了してしまうのは他の部分に問題があったからでした、申し訳ありませんでした。
実行してみたところ、三つの行を選択しましたが、選択した行の一番上の行の左端の値のみ取得できました。
選択した行分のそれぞれの左端の値がほしいと思っています。(三つの行を選択したら三つの値が得られ、五つ選択したら五つの値が得られる)
No.1
- 回答日時:
SelectedRows(0) が選択されている行の中での先頭行かと思ったらそういうわけじゃないんですね。
とりあえず、SortedList を使って行番号でソートしてから0番目を取得するようにしてみました。
Dim sl As New System.Collections.Generic.SortedList(Of Integer, DataGridViewRow)
Dim r As DataGridViewRow
For Each r In Me.DataGridView1.SelectedRows
sl.Add(r.Index, r)
Next
r = sl.Values(0)
Dim test As String = r.Cells(0).Value & "(" & r.Index.ToString() & "行目)"
MessageBox.Show(test)
この回答への補足
早速の回答ありがとうございます
上のコードをボタン1のクリックにイベントにコピペしてみたのですが、ボタン1を押すと実行画面が勝手に終了してしまいました・・・。
プログラミングを習って三ヶ月ほどなのでコードなど全然読めないのですが、私がやりたいこととは少し違うかなと思いました。
1列 2列 3列 4列
――――――――――――――
1行| aa jj kk kk
2行| BB jj kk kk ←選択
3行| cc gg ll oo ←選択
4行| EE ii pp yy ←選択
5行| ff tt rr ww
6行| qq uu uu uu
このように、ドラッグで2行と3行と4行が選択されているとき(Ctrlでの複数選択のときも)
テキストボックスに
BBが選択されています
ccが選択されています
EEが選択されています
と表示したいのですが、可能でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
like演算子内に変数って使えな...
-
VBA:小数点以下の数字を取得で...
-
エクセルVBAによるIE制御(セレ...
-
MACアドレス取得が上手くいかない
-
リストビュー:先頭行のアイテ...
-
データ数をカウントしたいのですが
-
システム日付の表示方法
-
gethostbyaddrでのホスト名取得...
-
HTMLのSELECTタグの選択肢...
-
コンボボックスにdateで取...
-
VB.NETで DataRow()を利用して...
-
エクセルVbaのエラー処理が...
-
コンボボックスの表示は最大何行?
-
漢字→ふりがなの取得
-
VBAでActiveDirectoryのユーザ...
-
時刻データが前後します
-
アイコンの自動整列の属性取得 API
-
Webクエリで”次の10件”も自動で...
-
何が間違ってるのか教えていた...
-
CGIで受信パラメータを解析...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
VBAでActiveDirectoryのユーザ...
-
利用者側のMACアドレスを取得し...
-
count(*)で取得した値をJAVAの...
-
Flexgridで選択行の列の値を取...
-
Spreadの選択行の取得について
-
like演算子内に変数って使えな...
-
EXCELのリストボックスを選択し...
-
データ数をカウントしたいのですが
-
VBA Shapesの座標からセル位置...
-
NTPサーバから時刻を取得する
-
VBA リストボックス内の値を複...
-
エクセルVBAで複数選択できるよ...
-
JavaScriptにおいてコンピュー...
-
時間を分に変換するプログラム
-
JavaScriptでWindowsログオンID...
-
「Excel VBA」 Webクエリ マク...
-
javaで週の最初の日(例:月曜日...
おすすめ情報