
みなさんこんにちは。昔Vb6を少々やっていましたが
ここ数年遠のいていました。
必要に迫られ最近Vb2010を勉強しはじめた50歳です。
サンプルの通り3つのメンバーを持つ構造体配列があり、
メンバーData3の合計を得るのに、ループで回して
計算してましたが、これを For~Next ではなくFor~Each で
やれないかと考えておりました。配列の要素の個数が不定
な場合に便利だと思ったからです。
サンプルの ???_1が「型」で ???_2が「コレクション」と
なるように記述するのだということまではわかりますが、
具体的な記述がわかりません。For~NetでもDo~Loopでも
他にも方法があるのは知っています。勉強の為に、For~Eachでの
やりかたを知りたいのです。また、構造体配列ではなく、多次元配列での
特定の次元要素を同様に処理する方法も知りたいです。
どなたかご教授お願いできれば幸いです。
ネット上でそれなりに調べましたが、目的に沿う情報は
みつけることができません。
Public Class Form1
Structure STR
Dim Data1 As Double
Dim Data2 As Double
Dim Data3 As Double
End Structure
Private Sub Button1_Click(sender As System.Object, _
e As System.EventArgs) Handles Button1.Click
Dim Str_1(10000) As StR
Dim Rn As New System.Random()
For i = 0 To 9999
Str_1(i).Data3 = Rn.Next(100)
Next
'以降いろんな処理をやる
'
'
'このあと For~Nex ではなくFor Each をつかってメンバーDat3の合計を得るには?
Dim sum As Double
For Each X As ???_1 in ???_2 '???_1 と ???_2 の記述がわからない
sum += X
Next
Label1.Text = sum.ToString
End Sub
End Class
No.1ベストアンサー
- 回答日時:
For eachで 構造体のメンバーを直接取得って出来ないと思います
やるならば 構造体を個別に抽出して そのメンバーをループ中で使う方法になると思います
???_1に『STR』???_2に『Str_1』を使って
for each X as STR in Str_1
Sum += X.data3
Next
といった具合かと …
>For eachで 構造体のメンバーを直接取得って出来ないと思います
そうでしたか・・・。
>for each X as STR in Str_1
> Sum += X.data3
>Next
>といった具合かと …
たぶんこれでも同じ行数で書けると思うので十分満足です。
For~Eachは要素の数が不定だったり、どうでも
よかったり順番がどうでもよいときに便利だと思っています。
ほんとにほんとにありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
構造体のメンバをfor文で回したい
C言語・C++・C#
-
EXCEL VBAの構造体検索について
Visual Basic(VBA)
-
構造体をコレクションに入れて扱いたいのですが…
コレクション
-
-
4
VB6でユーザー定義型がNothingかどうか調べるには?
Visual Basic(VBA)
-
5
VBで構造体の配列を関数に渡す方法?
Visual Basic(VBA)
-
6
構造体→文字列→構造体 をする方法
Visual Basic(VBA)
-
7
VB.NET 構造体の配列の検索機能について
Visual Basic(VBA)
-
8
文字数に合わせて、コントロールの幅を設定する方法
Visual Basic(VBA)
-
9
VB6 配列を初期化したい
Visual Basic(VBA)
-
10
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
11
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
12
VBの「As String * 128」とは?
Visual Basic(VBA)
-
13
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
14
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
15
VBA コレクションに2次元配列を追加して取り出す方法
Visual Basic(VBA)
-
16
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
-
17
全てのオブジェクトのプロパティーを一気に変更する方法
Visual Basic(VBA)
-
18
任意のフォームが表示されているかを知りたい
Visual Basic(VBA)
-
19
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
20
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでMODE関数をつくる
-
構造体配列内の文字列検索のよ...
-
C#,繰り返し処理での最大値の取...
-
レコードセットの中身を配列に...
-
VBA 変数名に変数を使用したい。
-
C#で作成したdllをVBScriptで使...
-
スロットマシンの判定方法(VB...
-
2つ目のレコードの値を取得す...
-
c言語で自分のホームディレク...
-
【ExcelVBA】値を変更しながら...
-
アクセス ステータスバーの文...
-
「テーブルに主キーがありませ...
-
他のMDBのテーブルに追加したい
-
VBからID3タグをいじる方法
-
COBOLのコーディングについて
-
エクセル・グラフの 横軸に値を...
-
Access :ALTER TABLE で作成...
-
DataGridの全行編集状態での行追加
-
INT64対応のprintf系関数はあり...
-
oo4oによるBLOBデータ取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
エクセルでXY座標に並べられた...
-
vba フィルター 複数条件 3つ以...
-
配列のペースト出力結果の書式...
-
OutOfMemoryExceptionの回避策...
-
配列の中の最大値とそのインデ...
-
複数のtextboxの処理を一括で行...
-
Dir関数で読み取り順を操作でき...
-
VB6からの移行したいけど、VB.N...
-
COBOLの基本的な事なので...
-
構造体配列の特定のメンバーをF...
-
大量の変数を定義するにはどう...
-
EXCEL VBAの課題です
-
Redim とEraseの違いは?
-
VB.NETの配列にExcelから読み込...
-
VBAでMODE関数をつくる
-
VB.NETにて、構造体へデータを...
-
1ビットごとの配列を作りたい
-
VBAで配列引数を値渡しできない...
おすすめ情報