'Imports System.IO 'Imports System.Text 'ファイル名と文字コードは適宜修正すること Dim fileName As String = "C:\test\example.txt" Dim enc As Encoding = Encoding.GetEncoding("Shift_JIS") '今回は先に件数を調べるので、ReadLines ではなく ReadAllLines を使う Dim lines As String() = File.ReadAllLines(fileName, enc) '配列の事前準備が必要なところまでは同じ Dim upperIndex As Integer = lines.GetUpperBound(0) Dim A(upperIndex), B(upperIndex), C(upperIndex), D(upperIndex) As Integer '数値化処理。CInt で数値化しても良いけれど、それだと変換エラー時に止まってしまうので…。 Dim FillInt = Sub(inText$, ByRef outInt%) Integer.TryParse(inText, outInt) Dim splitter As Char() = $" {vbTab} ".ToCharArray() Dim separator = StringSplitOptions.RemoveEmptyEntries For rowIndex = 0 To upperIndex '前回は Replace で vbTab 区切りに揃えたけれど、よく考えたら直接 Split すれば十分だった Dim columns() As String = lines(rowIndex).Split(splitter, separator) '別々の変数にセットする必要がなければ、こんな回りくどい処理をしなくて済むのだけれど… If columns.Length >= 1 Then FillInt(columns(0), A(rowIndex)) If columns.Length >= 2 Then FillInt(columns(1), B(rowIndex)) If columns.Length >= 3 Then FillInt(columns(2), C(rowIndex)) If columns.Length >= 4 Then FillInt(columns(3), D(rowIndex)) Next