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
<<
のような感じでやった。詳しくは、以下を応用。つい今週改訂版が出た。結構ショック。
- 作者: 渡辺ひかる,大村あつし
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2003/02
- メディア: 単行本
- クリック: 4回
- この商品を含むブログ (1件) を見る
仕事に役立つ ExcelVBA実用サンプルコレクション 新装版 Excel徹底活用シリーズ
- 作者: 渡辺ひかる,大村あつし
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/10/28
- メディア: 単行本
- 購入: 4人 クリック: 17回
- この商品を含むブログ (5件) を見る