たびたび、すみません。
VB6.0、winXPで開発しています。
http://okwave.jp/qa3323340.html
上記サイトを参考にして、
CSVの内容を構造体に格納したのですが、
構造体の要素数の取得方法がわからないため、
ループで回せずに困っています。
どのようにすれば、構造体の要素数を取得してループで回せるのでしょうか?
> 上記サイトを参考にして、
これは VB6 ではなく、VBA のようですね。
> CSVの内容を構造体に格納したのですが、
最終的に、どのようにしたのか読み取れませんでしたが、
回答番号:No.2 のように、(Get ではなく)Line Input # で
行単位で読み取り、それを Split するイメージでしょうか。
> 構造体の要素数の取得方法がわからないため、
ユーザー定義型の要素一覧を取得する事はできません。
(なので、ループで処理する事もできません)
ActiveX にして、“ユーザー定義型”をパブリックな型として登録するか、
タイプライブラリで“構造体”を定義してやれば、TLBINF32 等を用いて、
メンバ情報を拾えるとは思いますが……けっこう面倒かと。
> ループで回せずに困っています。
もしも Split しているのであれば、その時点で結果は配列になりますよね。
それをユーザー定義型で管理したいなら、そのメンバも配列にしておけば、
ループで処理できるかと思います。
ということで、修正方針としてはこうなるかな。
(1) ユーザー定義型に格納しなおす必要があるのかどうか、再検討する。
(2) どうしてもユーザー定義型が必要なら、メンバを配列にして、ループで回しやすいようにする。
(3) ユーザー定義型の定義を変更できないのであれば、ループで処理するのは諦める。
ユーザ定義の要素数って取れないんですね、残念です。
暫定的に、
CSVファイルを読み込んだ時のカウンターをPublic変数として保持して、
そのカウンターの数だけループで回すようにしてみました。
ツイート | ![]() |