ExcelVBAで列が256以上あるデータを読むとき

現行のOfficeは256列までしか読めない。OpenTextメソッド(だったっけ?)でExcelに読み込むと、256以降は捨てられる。で、こうやった。

Dim fso As New Scripting.FileSystemObject
Dim ts As Scripting.TextStream
DIm lineString As String
Set ts = fso.CreateText(fileFullName)
Dim lines As Integer
With ts
Dim itemString() As String
lineString = .ReadAllLine
lines = .line -1
.Close
End With
Set ts = Nothing

と、一度行数を取得した後で、

Set ts = fso.CreateText(fileFullName) 'もっかい同じファイルを開く
Dim i As Integer
For i = 1 To lines
With ts
Dim itemString() As String
If i <> lines Then
lineString = .ReadLine
itemString() = Split(lineString, Delimiter:=vbTab, Compare:=vbTextCompare) 'タブで切り出し
'なんかの処理
Else
.Close
End If
End With
Next
<<
のような感じでやった。詳しくは、以下を応用。

Excel VBA 実用サンプルコレクション

Excel VBA 実用サンプルコレクション

つい今週改訂版が出た。結構ショック。
仕事に役立つ ExcelVBA実用サンプルコレクション 新装版 Excel徹底活用シリーズ

仕事に役立つ ExcelVBA実用サンプルコレクション 新装版 Excel徹底活用シリーズ