tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル構造体の受け渡し
記事No10912
投稿日: 2012/08/28(Tue) 17:11
投稿者mura
下記のように構造体をfunctionに投げて格納した値を戻したいのですが、
[インデックスの数がインデックス付き配列の次元より少ない値です]とエラーが出ます。

VBAでは問題なく通るのですが、どこの書き方が悪いのでしょうか。

Structure TestData
        Dim A As String
        Dim B As String
End Structure

sub test
  dim TestA() as TestData
  if TestB(TestA())=true then
     msgbox"OK"
  end if
end sub

function TestB(ByRef TestA() as TestData) as Boolean
  dim x as integer
  dim i as integer
  
  i=1
  for x=1 to 100
     redim preserve TestB(i)
     TestB(i).A="Test"
     TestB(i).B="Test"
     i=i+1
  next
  TestB=true
end function

[ツリー表示へ]
タイトルRe: 構造体の受け渡し
記事No10913
投稿日: 2012/08/28(Tue) 17:56
投稿者VBレスキュー(花ちゃん)
> Structure TestData
>         Dim A As String
>         Dim B As String
> End Structure
>
> sub test


    Dim TestA() As TestData = Nothing
>   dim TestA() as TestData


    If TestB(TestA) = True Then
>   if TestB(TestA())=true then
>      msgbox"OK"
>   end if
> end sub
>
> function TestB(ByRef TestA() as TestData) as Boolean
>   dim x as integer
>   dim i as integer
>  
   配列は、0 から始まる事に注意して下さい。
>   i=1
>   for x=1 to 100

                      TestA(i) では、以下の3行とも
>      redim preserve TestB(i)
>      TestB(i).A="Test"
>      TestB(i).B="Test"
>      i=i+1
>   next
>   TestB=true
> end function

[ツリー表示へ]
タイトルRe^2: 構造体の受け渡し
記事No10914
投稿日: 2012/08/29(Wed) 09:34
投稿者mura
返信遅くなり申し訳ないです。
Nothingを割り当てた結果問題出来ました!
花ちゃんさんありがとうございました。

[ツリー表示へ]