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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

VB.NET

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

Q&A

解決済

3回答

668閲覧

VB.Netの構造体

sk7

総合スコア18

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

VB.NET

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

0グッド

0クリップ

投稿2018/10/04 13:32

編集2018/10/04 14:03

プログラムとしては自動券売機を作りたいと思ってます


public structure DBField
Dim name As String
Dim price As integer
End structure
Dim h As DBField

という構造体をつくりました。


そしてform_loadに
with h(0)
.name='コーラ'
.price=150
end with

...

with h(5)
.name='みかんじゅーす'
.price=100
end with

のように6個の情報をいれる?とします


FormにButtonを1個配置して、それを押した時
構造体のなかにある6個のジュースのうち
3つをとりだして、Buttonの処理のなかで使いたいです

またそれを3つのうちランダムで出したいと考えてるので
配列に3つの情報をいれて、乱数を使いたいと思ってます

Buttonを押した時に構造体の中身にいれてる
nameとpriceを、Button内で作った配列に
代入することはできないんでしょうか。


わかりにくくてすいません。

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

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

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

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

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

YAmaGNZ

2018/10/04 13:45

すみません。イメージがつかめません。ある程度具体的なコードを提示していただけないでしょうか?
sk7

2018/10/04 13:49

申し訳ございません!今から書き直します
guest

回答3

0

質問の意味がよく理解できませんが、オリジナルの配列をいじらず配列のコピーを作りたいということでしょうか?
文字列の引用符は ' ではなく " です。
VB.NET に明るくないのですが、BASIC で ' はコメントではありませんか?
きちんとコンパイル可能な最小のソースを作り、わからないところにコメントを入れて提示すれば解決が早いと思います。

VB.NET

1Public Class Form1 2 Public Structure DBField 3 Public name As String 4 Public price As Integer 5 End Structure 6 7 Private h(5) As DBField 8 9 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 10 With h(0) 11 .name = "コーラ" 12 .price = 150 13 End With 14 With h(1) 15 .name = "コーラ" 16 .price = 200 17 End With 18 With h(2) 19 .name = "コーラ" 20 .price = 300 21 End With 22 With h(3) 23 .name = "コーラ" 24 .price = 500 25 End With 26 With h(4) 27 .name = "コーラ" 28 .price = 10000 29 End With 30 With h(5) 31 .name = "みかんじゅーす" 32 .price = 100 33 End With 34 End Sub 35 36 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 37 Dim i = h.OrderBy(Function(a) Guid.NewGuid()).ToArray() 38 Dim j = h.OrderByDescending(Function(a) a.price).ToArray() 39 Print("オリジナル", h) 40 Print("ランダム", i) 41 Print("値段の高い順", j) 42 End Sub 43 44 Private Sub Print(title As String, target As IEnumerable(Of DBField)) 45 Dim s = target.Select(Function(a) String.Format("name={0}, price={1}", a.name, a.price)) 46 MessageBox.Show(title + vbLf + vbLf + String.Join(vbLf, s)) 47 End Sub 48 49End Class

投稿2018/10/05 01:00

編集2018/10/05 01:10
Zuishin

総合スコア28662

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

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

0

それとも、

VB

1Dim a(2) As DBField 'Buttonクリックイベントハンドラ内の配列 2'h配列よりランダムに3つ選ばれたインデックスが2,3,5だと仮定する 3 4a(0) = h(2) 5a(1) = h(3) 6a(2) = h(5) 7 8'以下処理を行う

のようなことをやりたいのでしょうか?

投稿2018/10/05 00:40

編集2018/10/05 00:42
kenshirou

総合スコア772

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

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

0

ベストアンサー

どうしてそのような疑問になったのか分かりませんが

VB.NET

1Dim a(2) As DBField 2 3a(0).name = h(3).name 4a(0).price = h(3).price 5

こういうことですか?

投稿2018/10/04 16:12

YAmaGNZ

総合スコア10288

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問