
みなさんこんにちは。昔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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) excel2013 色付きセルの値合計 3 2023/02/28 11:48
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
このQ&Aを見た人はこんなQ&Aも見ています
-
「それ、メッセージ花火でわざわざ伝えること?」
「それ、メッセージ花火でわざわざ伝えること?」というメッセージを教えて下さい
-
【お題】甲子園での思い出の残し方
【お題】「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
準・究極の選択
「年収1000万円で一生カレーライス」か「年収180万円で毎日何でも食べ放題」
-
構造体のメンバをfor文で回したい
C言語・C++・C#
-
EXCEL VBAの構造体検索について
Visual Basic(VBA)
-
構造体をコレクションに入れて扱いたいのですが…
コレクション
-
-
4
VB.NET 構造体の配列の検索機能について
Visual Basic(VBA)
-
5
VB6 配列を初期化したい
Visual Basic(VBA)
-
6
VB6でユーザー定義型がNothingかどうか調べるには?
Visual Basic(VBA)
-
7
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
8
クラスのプロパティに構造体を使いたい。
Visual Basic(VBA)
-
9
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
10
VBで構造体の配列を関数に渡す方法?
Visual Basic(VBA)
-
11
access vbaにてテンポラリーテーブルが作りたいです。
Access(アクセス)
-
12
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
-
15
リストボックス(複数選択しない)の場合の選択解除について
Access(アクセス)
-
16
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
17
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
18
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
19
文字数に合わせて、コントロールの幅を設定する方法
Visual Basic(VBA)
-
20
ユーザーフォーム上にアイコンの表示
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でbyte配列から画像を表示さ...
-
VBA 変数名に変数を使用したい。
-
配列の中の最大値とそのインデ...
-
エクセルでXY座標に並べられた...
-
配列の要素がすべてカラかどう...
-
Dir関数で読み取り順を操作でき...
-
構造体配列の特定のメンバーをF...
-
プログラミング関係で質問です。
-
Redim とEraseの違いは?
-
配列のペースト出力結果の書式...
-
VB.NETの配列にExcelから読み込...
-
コンボボックスのインデックス...
-
COBOLの基本的な事なので...
-
レコードセットの中身を配列に...
-
配列をランダムに並び替えても...
-
複数のtextboxの処理を一括で行...
-
配列入れ替えの効率的方法は
-
VB.NETの配列の限界を教えてく...
-
C++で作成したDLLにVBAから配列...
-
VBA 桁数が混在するソート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
エクセルでXY座標に並べられた...
-
C#でbyte配列から画像を表示さ...
-
Dir関数で読み取り順を操作でき...
-
配列の中の最大値とそのインデ...
-
構造体配列の特定のメンバーをF...
-
配列のペースト出力結果の書式...
-
CheckBoxの配列化
-
VBAでMODE関数をつくる
-
レコードセットの中身を配列に...
-
Redim とEraseの違いは?
-
VB.NETの配列にExcelから読み込...
-
複数のtextboxの処理を一括で行...
-
Excel2010のinputboxで複数デー...
-
定数配列の書き方
-
COBOLの基本的な事なので...
-
DBから取得した値を配列へ代入する
-
VB.NETの配列の限界を教えてく...
-
Segmentation Fault (メモリ制限?)
おすすめ情報