1

VB6 では、未定義の UDT の配列を作成しようとしています。私は自分自身を説明します。3 つの UDT があるとします。

Public Type Country
  Countryproperty1 as String
  Countryproperty2 as Date
End type

Public type City
  Cityproperty1 as String
  Cityproperty2 as Date
End type

Public type Street
  Streetproperty as string 
  Streetproperty as date
End type

これらの型のいずれかを受け入れることができる配列を宣言するにはどうすればよいですか?

どうもありがとう !ピエリック

4

1 に答える 1

2

UDT を type の配列に入れることは可能Variantですが、UDT がパブリック クラス モジュールで定義されている場合に限られます。

パブリック クラス モジュールは、いずれかの ActiveX プロジェクト タイプでのみ定義できます。まず、プロジェクトのタイプが「標準 EXE」の場合は、プロジェクト プロパティ ダイアログから「ActiveX EXE」に変更し、起動モードを「ActiveX コンポーネント」ではなく「スタンドアロン」に変更します。(または、ActiveX DLL/コントロール プロジェクトを追加し、メイン プロジェクトから参照します。)

次に、クラス モジュールをプロジェクトに追加し、その "Instancing" プロパティを "1 - Private" 以外に設定します。UDT 定義をこのクラス モジュールに移動します。

これで、UDT を type の任意の配列に配置できるようになりますVariant

別のアプローチは、型を UDT ではなくクラス モジュールとして実行することです。これは ActiveX プロジェクト タイプを必要としないため、VBA または VB6 の Learning Edition からも使用できます。この場合、UDT ごとに 1 つずつ、合計 3 つのクラス モジュールがあります。Public Type ...andを削除しEnd Type、型のPublicフィールドをクラス モジュールのフィールドとして配置します。これらは であるためObject、UDT とは非常に異なる処理を行います。Set割り当てとインスタンスの作成に使用Newします (例: Set c1 = New Country)。割り当ては、オブジェクトを複製せずに割り当てます。この場合の配列型は になりますObject

于 2013-10-21T17:55:44.383 に答える