【VB.NET入門】DataGridViewの使い方まとめ
「VB.NETのDataGridViewっていつ使うんだろう……」
「DataGridViewの具体的な使い方や応用テクニックを知りたいな……」
と思っていませんか?
VB.NETで画面を作るときに便利なのが、DataGridViewです。ただ、「どんなタイミングで使うのが便利なのか?」「具体的にどうやって使えばいいのか?」といった疑問が拭えない人も多いです。
そこで今回は、画像付きでVB.NETのDataGridViewの使い方を解説します!
すぐに使えるよう「DataGridViewのデータ操作」についても解説しているので、ぜひ参考にしてみてくださいね。
- システム
エンジニア - VB.NETのDataGridViewって便利そうだけど、難しくないかな?
- プロジェクト
マネージャー - 難しく感じるのは最初だけ。使い方をわかりやすく解説していくね!
※この記事は、Visual Basicの16.0で動作確認しました。
VB.NETのDataGridViewとは?
VB.NETのDataGridViewは、行列でデータ・オブジェクトを保持、利用できる仕組みです。以下のように一覧データとしてデータを表示したいときに、とても便利です。
また、データの中に「チェックボックス」「リストボックス」などの、コントロールを配置することもできます。表示だけでなく、データ更新機能を作りたいときにも便利です。
アプリ開発ではデータ操作はよく使うので、DataGridViewの使い方は覚えておくと良いでしょう。
【画像付き】VB.NETのDataGridViewの使い方
次に、VB.NETのDataGridViewの使い方について解説します。以下3つに分けて、DataGridViewを画面に表示する方法を解説します。
1. フォームにDataGridViewを追加
2. DataGridViewの初期値設定
3. フォームを実行してDataGridView表示
1つずつ詳しく解説しますね。
ここからは、Visual Studio Community(無料)を利用して、作り方を解説します。インストールがまだの場合は、以下の記事を参考に、インストールしてから続きを読むことをおすすめします。
>>> 【VB.NET入門】学ぶメリット・知識ゼロから始める手順全まとめ!
1. フォームにDataGridViewを追加
まずは、フォームにDataGridViewを作る手順を解説します。
1. Visual Studioを起動し、「新しいプロジェクトの作成」をクリック
2. 「Visual Basic」「Windows フォーム アプリケーション (.NET Framework」を選択後、「次へ」をクリック
3. プロジェクト名を入力し、「作成」をクリック
作成が完了すると、以下のように画面が起動します。
4. 表示タブにある「ツールボックス」を選択
5. 「すべての Windows フォーム」をクリック
6. 「DataGridView」を選択し、表示されている画面にドラッグ&ドロップ
これで、フォームにDataGridViewを配置できました。
2. DataGridViewの初期値設定
次に、DataGridViewの初期値を設定する手順を解説します。
初期値を設定するときは、画面を表示するときのイベント(Loadイベント)で表示する値をセットします。今回は簡単に解説するため、チェックボックスやボタンではなく、テキストを表示する流れで解説しますね。
1. DataGridViewで右クリックして「コードの表示」を選択し、コードウィンドウを開く
2. コードウィンドウの上部にある「Form1」を選択し、候補に表示された「(Form1 イベント)」を選択
3. 右隣のプルダウンリストを選択し、候補から「Load」を選択
選択すると、以下のようにLoadイベント用のメソッドが、自動で作成されます。
この中に、DataGridViewの初期値をセットする処理を書いていきます。今回は、以下のようなデータをDataGridViewに表示するデータを、初期値としてセットしました。
具体的なサンプルコードは、以下のとおりです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
'列数・行数を指定
DataGridView1.ColumnCount = 4
DataGridView1.RowCount = 5
'列名を指定
DataGridView1.Columns(0).HeaderText = "No"
DataGridView1.Columns(1).HeaderText = "ユーザ名"
DataGridView1.Columns(2).HeaderText = "年齢"
DataGridView1.Columns(3).HeaderText = "性別"
'セルのデータを5行分設定
DataGridView1.Rows(0).Cells(0).Value = 1
DataGridView1.Rows(0).Cells(1).Value = "ユーザ1"
DataGridView1.Rows(0).Cells(2).Value = "28"
DataGridView1.Rows(0).Cells(3).Value = "男性"
DataGridView1.Rows(1).Cells(0).Value = 2
DataGridView1.Rows(1).Cells(1).Value = "ユーザ2"
DataGridView1.Rows(1).Cells(2).Value = "22"
DataGridView1.Rows(1).Cells(3).Value = "女性"
DataGridView1.Rows(2).Cells(0).Value = 3
DataGridView1.Rows(2).Cells(1).Value = "ユーザ3"
DataGridView1.Rows(2).Cells(2).Value = "34"
DataGridView1.Rows(2).Cells(3).Value = "女性"
DataGridView1.Rows(3).Cells(0).Value = 4
DataGridView1.Rows(3).Cells(1).Value = "ユーザ4"
DataGridView1.Rows(3).Cells(2).Value = "33"
DataGridView1.Rows(3).Cells(3).Value = "男性"
DataGridView1.Rows(4).Cells(0).Value = 5
DataGridView1.Rows(4).Cells(1).Value = "ユーザ5"
DataGridView1.Rows(4).Cells(2).Value = "27"
DataGridView1.Rows(4).Cells(3).Value = "男性"
End Sub
|
「DataGridView1.ColumnCount = 列数」「DataGridView1.RowCoun = 行数」で、DataGridViewの列数・行数を指定しています。その後、「DataGridView1.Columns(列番号).HeaderText = 値」で列名を設定し、「DataGridView1.Rows(行番号).Cells(列番号).Value = 値」でセルの値を設定しています。
これで、DataGridViewを作る準備が完了です。
3. フォームを実行してDataGridView表示
次に、フォームを実際に実行してDataGridViewを表示してみましょう。以下のようにデバッグタブから「デバッグの開始」をクリックし、実行します。
次のようにフォームが表示されていれば、OKです。
DataGridViewを使う時の基礎となるので、作り方を憶えておきましょう。
VB.NETでDataGridViewをより使いこなすための3つの方法
「基礎的なDataGridViewの作り方はわかったけど、データ操作ってどうやればいいの……」と思った方もいるのではないでしょうか。そこで次に、以下3つに分けて追加で覚えておくと便利な方法を解説します。
1. 選択しているセル情報の取得
2. 行の追加
3. 行の削除
1つずつ詳しく解説しますね。
1. 選択しているセル情報の取得
1つ目は、「選択しているセル情報の取得」です。DataGridViewの値を操作するときは、選択しているセル情報(列番号、行番号、セル位置)を利用するケースはよくあるので、取得方法を覚えておきましょう。
取得方法は、以下のとおりです。
1
2
3
4
5
6
7
8
|
'選択しているセルの値の取得
DataGridView1.SelectedCells(0).Value
'選択しているセルの行番号の取得
DataGridView1.SelectedCells(0).RowIndex
'選択しているセルの列番号の取得
DataGridView1.SelectedCells(0).ColumnIndex
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'メッセージ表示用の変数
Dim strMessageList As String
'選択しているセルの値の取得
strMessageList = "選択しているセルの値:" & DataGridView1.SelectedCells(0).Value & vbCrLf
'選択している行番号の取得
strMessageList = strMessageList & "選択しているセルの行番号:" & DataGridView1.SelectedCells(0).RowIndex & vbCrLf
'選択している列番号の取得
strMessageList = strMessageList & "選択しているセルの行番号:" & DataGridView1.SelectedCells(0).ColumnIndex & vbCrLf
'メッセージボックスで表示
MsgBox(strMessageList)
End Sub
|
実行結果:
メッセージ用の変数「strMessageList」に選択しているセルの値、行番号、列番号をそれぞれ文字列結合し、最後にメッセージボックスで表示しています。
「DataGridView1.SelectedCells(0)」の「0」は、「選択している最初のセル」を意味しています。複数セルを選択している場合は、最初に選択したセルが指定されるイメージです。
以降は、以下のように値を取得しています。
・Value:セルの値を取得
・RowIndex:行番号の取得
・ColumnIndex:列番号の取得
セルの値をそのまま使用するだけでなく、行列を操作する際に行列の番号はよく使います。使い方を覚えておくと良いでしょう。
2. 行の追加
2つ目は、「行の追加」です。登録画面などを用意し、「登録したデータをDataGridViewに追加するケース」はよくあるので、使い方を覚えておきましょう。
行の追加方法は、以下のとおりです。
1
2
|
'1行追加
DataGridView1.Rows.Add(追加する行数)
|
追加する行数に何もいれなかった場合は、1行追加されます。サンプルコードは以下のとおりです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'1行追加
DataGridView1.Rows.Add()
'登録した行番号を取得
Dim maxRowNum As Integer
maxRowNum = DataGridView1.Rows.Count
'最終行に値を仮の値をセット
DataGridView1.Rows(maxRowNum - 1).Cells(0).Value = maxRowNum
DataGridView1.Rows(maxRowNum - 1).Cells(1).Value = "ユーザ_追加"
DataGridView1.Rows(maxRowNum - 1).Cells(2).Value = "XX"
DataGridView1.Rows(maxRowNum - 1).Cells(3).Value = "XX"
End Sub
|
行追加実行前のデータ:
行追加実行後のデータ:
1行末尾に追加されていますよね。このように、簡単に行を追加できます。
ちなみに、プロパティの設定がおかしいと、行の位置が以下のようにおかしくなってしまうケースもあります。
上記のようになってしまった場合は、DataGridViewのプロパティにある「AllowUserToAddRows」をFalseにしましょう。
ユーザーが自由にデータを登録・削除できるようにするか設定できるプロパティですが、登録時の挙動がおかしくなってしまうので、注意しましょう。
3. 行の削除
3つ目は、「行の削除」です。選択している行のデータを削除したいケースは、よくあります。
行の削除方法は、以下のとおりです。
1
|
DataGridView名.Rows.RemoveAt(行番号)
|
1
2
3
4
5
6
7
8
|
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'選択しているセルの行番号を取得
Dim selRowNo As Integer
selRowNo = DataGridView1.SelectedCells(0).RowIndex
'選択している行を削除
DataGridView1.Rows.RemoveAt(selRowNo)
End Sub
|
行削除実行前:
行削除実行後:
選択していた3行目のデータが、削除されていますよね。このように、簡単に行を削除できます。
まとめ
最後に、ここまでの解説をまとめます。
・DataGridViewは「行列でデータ・オブジェクトを保持、利用できる仕組み」
・DataGridViewを使いこなせば、データ一覧の表示・操作が楽になる
・値の取得・行の追加・行の削除とセットで覚えるのがおすすめ
VB.NETのDataGridViewは、データ操作をするときによく使います。登録したデータを表示したり、一覧データを更新したりするケースはよくあるので、使い方を覚えておきましょう。
簡単なところからでいいので、ぜひ使ってみてくださいね。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
VB.NET新着案件New Job
-
生産管理システムの単体テスト/東京都千代田区/【WEB面談可】/在宅勤務
月給25万~25万円東京都千代田区(東京駅) -
鉄鋼関連・グループ会社システム支援/Oracle/東京都新宿区/【WEB面談可】/在宅勤務
月給26万~26万円東京都新宿区(新宿駅) -
資産運用会社向け残高管理システム運用保守/SQLServer/東京都中央区/【WEB面談可】
月給50万~60万円東京都中央区(銀座駅) -
資産運用会社向け残高管理システム開発のテスター/SQLServer/東京都中央区/【WEB面談可】
月給25万~35万円東京都中央区(銀座駅) -
Web受注システム運用保守/VB.NET/東京都港区/【WEB面談可】
月給50万~60万円東京都港区(品川駅) -
Web受注システム開発のテスター/VB.NET/東京都港区/【WEB面談可】
月給25万~35万円東京都港区(品川駅)