> そこに、パブリックファンクションを作り、 > 引数として、ユーザー定義型の配列変数を > 渡したいと思っています。 > ところがこれが、コンパイルさえとおりません。 > 「ユーザー定義型や固定長の文字列型は、オブジェクト モジュールのパブリック メンバのデータ型として宣言することはできません。Private オブジェクト モジュールはパブリック オブジェクト モジュールのパブリック メンバとして宣言することはできません。」 > なるメッセージが出るのです。
VBのVerは?
うちでやってみたが、
' DLL側クラス Option Explicit
Public Type UZ_SAMPLE Name As String Age As Long End Type Private uzsData() As UZ_SAMPLE
Public Function SetData(d() As UZ_SAMPLE) As Long Dim I As Long ReDim uzsData(UBound(d)) For I = 0 To UBound(d) uzsData(I) = d(I) Next End Function
Public Sub ShowData() Dim I As Long For I = 0 To UBound(uzsData) Debug.Print uzsData(I).Name, uzsData(I).Age Next End Sub
' アプリ側フォーム Option Explicit
Private cSam As clsSample
Private d(9) As UZ_SAMPLE
Private Sub Form_Load() Dim I As Long For I = 0 To 9 d(I).Name = "Men" d(I).Age = I Set cSam = New clsSample Call cSam.SetData(d) Next Call cSam.ShowData End Sub
うまく動いているが。
|