
当方、Windows2000(SP2) + VB6.0(SP5) の環境です。
今、私が困っている事なのですが、宣言した構造体に入れた値を、
構造体ごとコレクションに追加して扱いたいと言う所なのです。
しかし最初の「構造体をコレクションに追加する」と言う時点で躓いています。
もしかして、構造体ごとコレクションに登録すると言う事は出来ないのでしょうか?
私が考えて書いたコードは以下のようになっております。
--- 標準モジュールにて構造体を宣言 ---
Public gcolAddData As New Collection 'Collectionオブジェクト
Public Type AddData '各データをレコードで獲得
varName As Variant
varPostCd As Variant
varAddress As Variant
varTellNum As Variant
End Type
Public gAddData As AddData
--- 以下が実際に走っているソースです ---
'構造体に取得する
With gAddData
--- ここで構造体の各変数に値を入れています ---
End With
'構造体をコレクションに格納
gcolAddData.Add gAddData
普通にAddしてしまう方法なのですが、これでは駄目なのでしょうか。
方法があるのであれば教えて頂けると嬉しいです。
また、これは念の為の確認としてお聞きしたいのですが、
コレクションに追加した構造体を受け取りたい時は
以下のようにSet文で構わないですよね?
Dim tmpAddData As gcolAddData
Set tmpAddData = gcolAddData.Item(0)
何分、まだこの段階まで進めていない状態ですので……(汗
どうぞよろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
随分古い質問なので、本人はもう見ないかもしれないけど、同様の問題ではまっている人がいるかも知れないので、書いておきます。
構造体をCollectionに入れるのではなく、構造体をClassに変換して、そのClassをベースとした、Collectionを作成すれば、目的の内容は実現できるはずです。
No.1
- 回答日時:
こんにちは。
maruru01です。Collectionオブジェクトのヘルプには以下のように書かれています。
Collection オブジェクトの構成
Collection オブジェクトには、バリアント型 (Variant) で各トピックが格納されています。したがって、Collection オブジェクトに追加できる事柄の一覧は、バリアント型に格納できる事柄の一覧と同じです。これには、基本データ型、オブジェクト、および配列が含まれ、ユーザー定義の型は含まれません。
したがって、ユーザー定義の型(いわゆる構造体)は追加出来ないようです。
コレクションを使ってどうのような処理をしたいのか分かりませんが、だいたいは、配列で代用出来るのではないでしょうか。
では。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Visual Basic(VBA) M365環境での動作エラー、及び対応相談 1 2023/01/27 04:18
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA コレクションに2次元配列を追加して取り出す方法
Visual Basic(VBA)
-
構造体配列の特定のメンバーをFor~Eachで
Visual Basic(VBA)
-
VB6でユーザー定義型がNothingかどうか調べるには?
Visual Basic(VBA)
-
-
4
collection型を引数にしたファンクションでコンパイルエラー
Visual Basic(VBA)
-
5
VBで構造体の配列を関数に渡す方法?
Visual Basic(VBA)
-
6
FriendとPublicの違い。。。
Visual Basic(VBA)
-
7
VBA 置換文字がみつからない時
Visual Basic(VBA)
-
8
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
-
9
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
10
コマンドボタンを押すたびに大きくなってしまう
Excel(エクセル)
-
11
エクセルVBA クラスモジュール内でパブリックユーザ定義型
Visual Basic(VBA)
-
12
VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について
Visual Basic(VBA)
-
13
動的配列が存在(要素が有る)か否かを判定できますか?
Visual Basic(VBA)
-
14
VBA2005 16進を2桁で表示したい。
Visual Basic(VBA)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
ExcelVBA:パブリック オブジェクト モジュール…というエラーの対処法
Visual Basic(VBA)
-
18
VB6 配列を初期化したい
Visual Basic(VBA)
-
19
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
20
ユーザーフォームで動的(Me.Controls.Add)に作成したコントロールの削除
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IC-R5を持っていますが、IC-R6...
-
A4用紙に穴あけパンチで二つ穴...
-
クラクション鳴らされた
-
保存用のグッズって何の為に使...
-
中古のシルバニアの扱い方
-
洗車 めちゃくちゃ頑固なウロコ...
-
モンドセレクション受賞 楽天3冠
-
今度大阪万博に行くんですけど...
-
欲しいゲームが欲しすぎるコレ...
-
ナビnszt-y64tで何処を探しても...
-
アニメグッズ 4択 購入するなら...
-
今は既に推していない、見てい...
-
LDLコレステロール値
-
昭和39年の東京オリンピックの...
-
やのまん(Yanoman) コレクショ...
-
沢山の同じ種類の缶バッジ付け...
-
これは値打ちのある物ですか?
-
ガチャガチャについて 発売日 1...
-
友達から貰ったグッズを持て余...
-
アクションフィギュア1個に3500...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体をコレクションに入れて...
-
VBSでのコレクション
-
以前あったofficeコレクション...
-
皆さんのコレクションは?
-
ギザ10やフデ5をコレクションを...
-
マイ・コレクション
-
フェリシモのコレクション・カ...
-
ガンダムフィギュア主にメタル...
-
DSソフト ともだちコレクション...
-
コレクション
-
腕時計コレクションケース内の...
-
何かコレクションしていますか?
-
コレクションを使用した場合の...
-
自分がもし突然亡くなったら、...
-
kmコレクションについて
-
趣味で女性用のアダルトグッズ...
-
イカ娘アクションフィギュアな...
-
カンカンが好きで、スチームク...
-
FFコレクションと攻略本
-
メタルギア 20th アニバーサリ...
おすすめ情報