投稿者 中本  (社会人) 投稿日時 2013/4/10 17:41:38
VB2010 を使用しています。
構造体にデータ入力でつまづいています。
よろしくお願いします。

Public Class MainStart

'宣言
Public JUd(150) As JUD変数

Structure JUD変数
        Dim N As String
        Dim Hi As Double

Public Sub New(ByRef N As String,  ByRef Hi As Double)
            Me.N = N    
            Me.Hi = Hi     

End Structure
  
'クリック
Private Sub ButOpenFile_Click(sender As System.Object, e As System.EventArgs) Handles ButOpenFile.Click
  Dim i As Integer
  for i= 1 to 10 step 2
          JUd(i).N = Ary(i)      '名前
          JUd(i).Hi = Ary(i+1)     '番号
  next i

end class

以上の方法だと、構造体のJUd()に変数の受け渡しができます。
しかし、都合上サブルーチン内でデータを取り込もうとしましたが
エラーとなります。単純にはいかないのでしょうか。

'クリック
Private Sub ButOpenFile_Click(sender As System.Object, e As System.EventArgs) Handles ButOpenFile.Click

  Call testsub(JUd,Ary)   

end sub


Sub testsub(byref JUd, byref Ary)
  Dim i As Integer
  for i= 1 to 10 step 2
          JUd(i).N = Ary(i)      '名前
          JUd(i).Hi = Ary(i+1)     '番号
  next i

end sub

end class

とましたた。エラーメッセージは、次の通りです。
Exceptionはハンドルされませんでした。
'JUd変数' が遅延バインディングの結果である場合、'LY変数' 型の値のフィールドへの遅延バインディングの割り当ては無効です。