質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

3936閲覧

【VB】処理結果を表にして表示させる方法

momo842

総合スコア7

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/08/05 02:22

編集2020/08/05 10:14

前提・実現したいこと

お世話になります。

VB2019、ユーザーフォームコントロール上で
演算処理結果をExcelの表のような形で表示させる方法を模索しております。

例)
kekka(5) '演算結果を格納した変数

********** kekka(1) ***********
kekka(2) kekka(3) kekka(4)
********** kekka(5) ***********

上記のように演算結果をExcelのセル相当として
cell(1,2)=kekka(1)
のように指定した場所にいれてあげて、マッピングのような形で
表示させる機能を作成したいです。

現状はどうにもうまくいかず、テキストボックスで表示させてしまおうか
と思っています。
ただこの方法の場合、3×3くらいのフィールドであればやっつけでできるのですが、
10×10などフィールドが大きいものだとテキストボックスの数が増えっていってしまうため
できるだけ避けたいです。

ご回答の程宜しくお願い致します。

補足情報(FW/ツールのバージョンなど)

皆様ご回答ありがとうございました。
プログラミング初心者で至らない点が多い中、たくさんのアドバイス感謝です。

VB2019

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mdj

2020/08/05 02:27

見た目だけでいうなら「data grid view」で検索してみてください。
YAmaGNZ

2020/08/05 02:40

「DataGridView」です。 検索に影響はないかもしれませんが、提案するのであればクラス名は正しく表記すべきかと思います。
sazi

2020/08/05 02:43

WINDOWS FORMを使用されているんでしょうか?それともWPF?
momo842

2020/08/05 03:34

ご回答ありがとうございます。 FORMです。
momo842

2020/08/05 04:53

DataGridViewを検索しながら試行錯誤しているところです。。。 データベース??を使う必要がある??とかまだまだ何も分からず、勉強中です。
guest

回答2

0

ベストアンサー

表形式の表示であれば、DataGridViewを使用すればよいかと思います。
DataGridViewを細かく説明すると、それだけで大掛かりな記事になってしまうので、とりあえずシンプルな5×5の表を表示するサンプルを載せます。
これが何やってるか良く分からない、という部分があったらコメントでお願いします。

vbnet

1Public Class Form1 2 3 Protected Overrides Sub OnLoad(e As EventArgs) 4 MyBase.OnLoad(e) 5 6 '勝手に列を生成させないようにするため 7 'DataGridViewのAutoGenerateColumnsを無効にする 8 DataGridView1.AutoGenerateColumns = False 9 10 'DataTableとDataGridViewの列を作成する 11 '(DataGridViewの列はフォームデザイナで作成してもよい) 12 Dim table = New DataTable 13 For x As Integer = 1 To 5 14 Dim colName = $"Column{x}" 15 table.Columns.Add(colName, GetType(String)) 16 17 Dim dataColumn = New DataGridViewTextBoxColumn With 18 { 19 .HeaderText = $"列{x}", 20 .DataPropertyName = colName, 'DataTableの参照する列を指定 21 .Width = 60 22 } 23 DataGridView1.Columns.Add(dataColumn) 24 Next 25 26 'DataTableにテスト用データを書き込み 27 For y As Integer = 1 To 5 28 Dim row = table.NewRow 29 For x As Integer = 1 To 5 30 row($"Column{x}") = $"x={x},y={y}" 31 Next 32 table.Rows.Add(row) 33 Next 34 35 'DataGridViewにDataTableを設定 36 DataGridView1.DataSource = table 37 End Sub 38 39 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 40 Dim table = DirectCast(DataGridView1.DataSource, DataTable) 41 '試しに左上から右下にかけてあいうえおと書きこんでみる 42 table.Rows(0)("Column1") = "あ" 43 table.Rows(1)("Column2") = "い" 44 table.Rows(2)("Column3") = "う" 45 table.Rows(3)("Column4") = "え" 46 table.Rows(4)("Column5") = "お" 47 'これでも可 48 'table.Rows(0)(0) = "あ" 49 'table.Rows(1)(1) = "い" 50 'table.Rows(2)(2) = "う" 51 'table.Rows(3)(3) = "え" 52 'table.Rows(4)(4) = "お" 53 End Sub 54 55End Class 56

(ボタンクリック後のイメージ)
ボタンクリック後のイメージ

DataGridViewは表示や入力設定など様々な設定が可能ですが、とにかく膨大な機能があるのでMicrosoftのクラスリファレンスを確認したり、Webでサンプルを探すなりして細かい部分は試行錯誤してみてください。

投稿2020/08/05 08:06

編集2020/08/05 08:30
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

TableLayoutPanel コントロールを使うというのはいかがですか?

手順 4: TableLayoutPanel コントロールを使用したフォームのレイアウトの設定
https://docs.microsoft.com/ja-jp/visualstudio/ide/step-4-lay-out-your-form-with-a-tablelayoutpanel-control?view=vs-2019

TableLayoutPanelコントロールを使って、コントロールを表形式で整列させる
https://dobon.net/vb/dotnet/control/tlbeginning.html

windows forms table layout などをキーワードにググると他にもいろいろヒットするので調べてみてください。

投稿2020/08/05 04:35

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momo842

2020/08/05 06:34

ご回答ありがとうございます。 TableLayoutPanelを調べながら使ってみてはいるのですが、 このコントロールって フォームをきれいに配置するために使用するものではないのですか? 結局、これで枠を作って中にテキストボックスを嵌めていくことになるような、、、 自分の勉強不足かもしれません。。。よろしくお願い致します。
退会済みユーザー

退会済みユーザー

2020/08/05 06:57

その認識で正しいです。 汎用的な表形式表示なら、DataGridViewでいいと思います。
退会済みユーザー

退会済みユーザー

2020/08/05 10:27

質問の「Excelの表のような形」ということと「例)」から、紹介した後者の記事の図にあるような不定形の表を想像したのですが違うのですか? DataGridView は DB のレコード一覧を表示するような場合は使いやすいのですが、紹介した後者の記事の図にあるような表を表示しようとすると、途端に敷居が高くなる(と言うよりで実現できないかも)と思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問