2017-11-11 11 views
0

txtファイルから配列にデータを渡す際に問題があります。私はtxtファイルからデータでいっぱいにする必要がある単語の文書を持っています。VBA配列の値

Private Function ReadString() As String 
Dim textArray() As String 
Dim data As String 
Open "C:\Data\XFile.ini" For Input As #1 
    r = 0 
    Do Until EOF(1) 
    ReDim textArray(0 To r) 
    Line Input #1, data 
    textArray(r) = data 
    r = r + 1 
    Loop 
    ReadString = textArray(77) 
    ' MsgBox ReadString 
    ' MsgBox "After" 
    Close #1 
End Function 

78行目のデータが必要ですが、私のコードで何か問題があり、データがファイルから配列に渡されません。誰かが問題を指摘できれば、私はとても感謝しています。

答えて

3

ReDimの配列のデータを保持するには、ReDim Preserveを使用する必要があります。それ以外の場合、アレイは消去されます。

Private Function ReadString() As String 
    Dim data As String, textArray() As String 
    Dim n As Long 
    ReDim textArray(0) 
    Open "C:\Data\XFile.ini" For Input As #1 

    Do Until EOF(1) 
     ReDim Preserve textArray(count) 
     n = n + 1 
     Line Input #1, data 
     textArray(n) = data 
     r = r + 1 
    Loop 
    Close #1 
    ReadString = textArray(77) 
End Function 

また、データを格納するためにArrayListを使用することもできます。

Private Function ReadString2() As String 
    Dim data As String 
    Dim list As Object 
    Set list = CreateObject("System.Collections.ArrayList") 

    Open "C:\Data\XFile.ini" For Input As #1 
    Do Until EOF(1) 
     ReDim Preserve textArray(count) 
     Line Input #1, data 
     list.Add data 
    Loop 
    Close #1 
    ReadString = list(77) 
End Function 

textArray = list.ToArrayを使用して配列全体を抽出します。

+0

ありがとうございます。今それは働いている。 –

+0

@ YowE3Kもう一度ありがとう。私はtextArrayが0ベースであることを忘れていました。 –