• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2次元配列の選択と表示について)

2次元配列の選択と表示について

このQ&Aのポイント
  • Visual Basic 2008 express editionでの2次元配列の選択と表示についての質問です。
  • Radiobuttonを選択し、Comboboxで配列の番号を決め、ボタンをクリックするとTextbox1に選択した配列番号の値が表示される仕組みについて知りたいです。
  • 関連のサイトを調べましたが、理解できませんでした。どなたか教えていただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

補足説明ありがとうございます。コード修正しました。行数削減されていますが、やっていることはほとんど同じです。 Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ComboBox1.Items.AddRange(New String() {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}) ComboBox2.Items.AddRange(New String() {"0", "1"}) RadioButton1.Tag = New String(,) {{"G", "Z", "S", "L", "E", "F", "G", "H", "W", "Y"}, {"A", "B", "C", "D", "E", "B", "G", "H", "Q", "U"}} RadioButton2.Tag = New String(,) {{"Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"}, {"A", "S", "D", "F", "G", "H", "J", "K", "L", "Z"}} End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If ComboBox1.SelectedIndex < 0 Or ComboBox2.SelectedIndex < 0 Or _ (RadioButton1.Checked = False And RadioButton2.Checked = False) Then Return Dim strArray As String(,) Select Case True Case RadioButton1.Checked : strArray = CType(RadioButton1.Tag, String(,)) Case RadioButton2.Checked : strArray = CType(RadioButton2.Tag, String(,)) Case Else : Return End Select TextBox1.Text = strArray(ComboBox2.SelectedIndex, ComboBox1.SelectedIndex).ToString End Sub

xlhjp
質問者

お礼

親切に答えて頂き、ありがとうございました。 これから、VBに続けてがんばります。 まだ宜しくお願いします。^ー^

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

いまいちデータの状況が分からないのですが… > 使用する配列(1 or 2) 2次元配列が2種類あるということでしょうか? > Combobox: 横(10)、縦(10) 2次元配列は2*10なのに、横10・縦10とは? 1つの2次元配列に対して、インデックスとなる値が3つあるように思えます。 ただ、要点はボタンをクリックしたときに、特定の配列ではなく動的に参照した配列から要素を抜き出したい、ところだと決め打ちしてコードを書いてみました。 RadioButtonのTagにそれぞれ2次元配列を格納しておいて、チェックされている方の配列から要素を取得するものです。 配列を一旦Object(Tagプロパティ)に落とし、参照時にCTypeで2次元配列に戻す方法で実現しています。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call CreateList() ComboBox1.Items.AddRange(New String() {"0", "1"}) ComboBox2.Items.AddRange(New String() {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}) RadioButton1.Tag = New Integer(,) {{0, 1, 2, 3, 5, 6, 7, 8, 9, 10}, {0, 1, 2, 3, 5, 6, 7, 8, 9, 10}} RadioButton2.Tag = New Integer(,) {{0, 1, 2, 3, 5, 6, 7, 8, 9, 10}, {0, 1, 2, 3, 5, 6, 7, 8, 9, 10}} End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If ComboBox1.SelectedIndex < 0 Or ComboBox2.SelectedIndex < 0 Or _ (RadioButton1.Checked = False And RadioButton2.Checked = False) Then Return End If Dim intArray As Integer(,) Select Case True Case RadioButton1.Checked intArray = CType(RadioButton1.Tag, Integer(,)) Case RadioButton2.Checked intArray = CType(RadioButton2.Tag, Integer(,)) Case Else Return End Select TextBox1.Text = intArray(ComboBox1.SelectedIndex, ComboBox2.SelectedIndex).ToString End Sub

xlhjp
質問者

補足

ご返事頂き、ありがとうございました。 説明の不足ですみませんでした。 再度詳細を説明致します。 ---------------------- Radiobutton1 Radiobutton2 配列:2次元配列 2つ 1個目:     G,Z,S,L,E,F,G,H,W,Y     A,B,C,D,E,B,G,H,Q,U 2個目:     Q,W,E,R,T,Y,U,I,O,P A,S,D,F,G,H,J,K,L,Z Combobox1値: 0~9の10個 Combobox2値: 0~1の10個 --------------------- 【実行例:】 1 Radiobutton1を選択 (この時点で1個目の2次元配列値の使用を決め) 2 Combobox1とCombobox2を選択することにより、上記の配列の値の番地(横+縦)を決定 3 ボタンをクリックして、Textbox1に選択した配列番地の値を表示させる   例えば、 Combobox1は 5(横)とCombobox2(縦)は1を選択する場合は   配列1の”B”をTextbox1に表示される Wizard_Zeroさんからの答えをすると、Combobox1とCombobox2の合計値が表示されました。 すみませんですが、実行例を参照し、もう1度答えを頂けませんでしょうか。 (^@^)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 二次元配列でソートがしたい

    二次元配列でソートがしたい 二次元配列でソートがしたい 開発環境:Visual Web Developer 2008 express 言語:Visual Basic 上記開発環境でWebアプリケーションを開発中です。 TextBoxを縦20行横10列の表形式に配置し、左から2番目の列に入力された数値をキーに、昇順に並べ替えができるような入力フォームを作成していますが、参考になるようなサイトが見つからなかったので、どなたか参考になるサイトやサンプルロジックを教えて頂けないでしょうか? よろしくお願いします。

  • 多次元配列なんですが・・・

    初心者です。多次元配列をつかって縦の一列目と横の一列目だけに要素を表示さてたいのですが、どのようなプログラムを組んだらいいのでしょうか。友達に「triMatrix」というのを使ったらどうかといわれたのですが、いまいち分かりませんどなたか助言をお願いします。

  • textboxの二次元配列で質問

    textboxの二次元配列で質問 Visual Web Developer 2008を使いWebアプリケーションの入力フォームを開発中です。言語はVBです。  複数行のtextboxに入力された文字を連結する方法が分かりません。ネットでいろいろ検索して二次元配列をすれば可能なようですが、分かりやすく書いてあるサイトが見つからず、苦戦しています。列数は10列。行数は50行ぐらいあります。 ↓(サンプル)  例えば、下のような入力フォームのtextboxにあ・い・う・え・お・か・き……と入力された文字列で、buttonをクリックしたら「あいうえおかきくけこ…」と文字列の連結した実行結果を出したい場合です。       列   あ|い|う|え|お| | |   か|き|く|け|こ| | | 行 さ|し|す|せ|そ| | |   た|ち|つ|て|と| | |   な|に|ぬ|ね|の| | |    | | | | | | |    | | | | | | |    textboxが多いので、二次元配列と繰り返し処理(文字がなくなるまで繰り返す)を使って、簡単にできないでしょうか? 初心者なので分かりづらい質問で申し訳ありません。 参考になるページやコードがあったら教えて下さい。 よろしくお願いします。

  • 2次元配列について、教えてください。

    基本的なことなのでしょうがまだよくわかっていません。 ワークシートにたとえると、1次元は縦方向(行番号方向)、二次元は横方向(列番号方向)ですよね? 列数、行数にあたるのが1次元、二次元それぞれの添字ですよね? そしてセルに当たるのが「要素」ですよね? 以上の解釈があっていたら、 1.A列やB列にあたるものはなんと呼ぶのでしょうか? 2.1行目や2行目にあたるのはなんと呼びますか? 3.ワークシートで行や列を削除するような感じで2次元配列の行や列にあたるものを削除することはできますか? 4.UBound関数は、配列の大きさを調べられますが、この大きさは添字です。ワークシートのCells(65536,1).End(xlUp)Rowのように実際にデータがどこまで入っているか調べられますか? 教えてください。 前提とした解釈自体が違っていたらそれもご指摘ください。

  • 【C言語を教えてください!】2次元配列について

    【C言語を教えてください!】2次元配列について 2次元配列を用いて、コンソール画面(ターミナル)の中央付近に*を表示させるプログラムを作りたいのですがさっぱり分かりません。 画面の大きさは半角で横80 縦25です。 25は奇数ですので40×12に表示したいと思います。 2重ループでなら出来たのですが配列でのやり方がわかりません。 #include<stdio.h> main() { int i,j; for(i=0;i<25;i++){ for(j=0;j<80;j++){ if(i==12&j==39){ putchar('*'); }else{ putchar(' '); } } } return 0; } 回答お願いします!

  • java 多次元配列

    二次元平面を二次元配列int g[20][40]と対応させて考える。 g[x][y] == 1なら座標(x,y)に点があり、g[x][y] == 0なら点はないとする時、y = 2*x+5 (0=<x=<20)のグラフを表示するプログラムを作成せよ。 (xを縦方向,yを横方向と考えよ) というプログラムと同様にして y = x*x-8*x+16 (0=<x=<20)のグラフを表示するプログラムを作れ。という問題がプログラミング初心者の私には難しすぎます。 方法を教えて頂けないでしょうか?

  • java 多次元配列

    二次元平面を二次元配列int g[20][40]と対応させて考える。 g[x][y] == 1なら座標(x,y)に点があり、g[x][y] == 0なら点はないとする時、y = 2*x+5 (0=<x=<20)のグラフを表示するプログラムを作成せよ。 (xを縦方向,yを横方向と考えよ。) というプログラムと同様にして y = x*x-8*x+16 (0=<x=<20)のグラフを表示するプログラムを作れ。という問題がプログラミング初心者の私には難しすぎます。 方法を教えて頂けないでしょうか?

  • テキストボックスの表示について

    visual basic2010を使用しています。 コンボボックスAの選択が1~4だった時、コンボボックスB、C、Dの選択された結果を、ボタンクリックを経てテキストボックスに表示させるにはどうすればいいでしょうか? If ComboBox1.Text = "1" Then TextBox1.Text = (ComboBox2.Text) TextBox1.Text = (ComboBox3.Text) TextBox1.Text = (ComboBox4.Text) ElseIf ComboBox1.Text = "2" Then TextBox2.Text = (ComboBox2.Text) TextBox2.Text = (ComboBox3.Text) TextBox2.Text = (ComboBox4.Text) ElseIf ComboBox1.Text = "3" Then TextBox3.Text = (ComboBox2.Text) TextBox3.Text = (ComboBox3.Text) TextBox3.Text = (ComboBox4.Text) Else TextBox4.Text = (ComboBox2.Text) TextBox4.Text = (ComboBox3.Text) TextBox4.Text = (ComboBox4.Text) End If 実行した結果、ComboBox4のみの結果がテキストボックスに表示されてしまいました。 '変数を使った場合 If ComboBox2.Text = "1" Then Dim st As String st = (ComboBox3.Text),(ComboBox4.Text),(ComboBox5.Text) textbox1.Text = st ElseIf ~~~~~~~~~~^ こちらは「ステートメントの終わりを指定してください」と出て動作しませんでした。 以上、宜しくお願い致します。

  • VB2015 ListBoxの二次元配列を呼出す

    始めまして。 趣味でVBソフトを作りたいと奮闘中です。 ExcelVBAやC#の簡単ソフトを作った経験があります。 パソコン環境は、W10x64、VB2015です。 ListBoxに2次元配列で下記のように書き込み、選択した行の右側のデータ(欄2)を他のTextBoxに表示させたいのです。 下のデータを2次元配列にして読み込ませる方法と、選択した行の欄2のデータを取り込む方法を教えて頂けると嬉しいです。ListBoxのプロパティのMultiColumnはTrueにしてあります。  欄1 欄2 北海道  550 青森県  138 宮城県  230 東京都  1360 現在は次のようにしてなんとか逃げておりますが、2次元配列でスマートに出来れば嬉しいです。 書き込み ListBox1.BeginUpdate() ListBox1.Items.Add("北海道 , 550") ListBox1.Items.Add("青森県 , 138") ListBox1.Items.Add("宮城県 , 230") ListBox1.Items.Add("東京都 , 1360") ListBox1.EndUpdate() 呼び出し Dim textArray = ListBox1.SelectedItem.ToString.Split(",")  Dim Jinko As Single = Single.Parse(textArray(1)) TextBox.Text = Jinko 宜しくお願い致します。 熊谷

  • 2次元配列でウォッチが出来ない

    2次元配列でウォッチが出来ない 環境 windowsXP Prp Visual Stadio2003 下記の状況で2次元配列のウォッチが出来ません。 1.Visual Stadio2003を起動 2.ファイル→新規作成→プロジェクト 3.プロジェクトの種類はVisual C++プロジェクトでテンプレートからWindowsフォームアプリケーションを選択して、 プロジェクト名に「test」と入力後OKボタン押下 4.Formの適当な位置にボタンを貼り付ける 5.貼り付けたボタンをダブルクリックしてボタンクリックイベントの中(Form1.h)に以下の処理を記述する char cWork[5][20]; memcpy(&cWork[0],"こんにちは",sizeof(cWork)); 7.memcpy(&cWork[0],"こんにちは",sizeof(cWork)); にブレイクポイントを置いて、デバッグ実行をする 8.フォームのボタンを押下してブレイクポイントで止まったら「cWork」をウォッチする 9.memcpy(&cWork[0],"こんにちは",sizeof(cWork)); をステップ実行後ウォッチで内容を確認すると以下のようになります ━cWork{Length=5}char[][][] ┣━ ┣━ ┣━ ┣━ ┗━ ウォッチは出来ませんが、cWorkの中身をテキストボックスに表示や1次元配列に格納したところ cWorkに正しく値は入っていました。 ウォッチ出来ないのはVisualStadio2003のバグなのでしょうか? お分かりになられる方いらっしゃいましたらご教授お願いいたします。