- 締切済み
VB2005で作成したエクセルファイルに問題が・・・。
お世話になっております。 VB2005にてまず大元のエクセルファイルを分割し、別ツールにて分割したファイルを読み込み、その後に読み込んだファイルを処理をしようとしています。 先に質問させていただき、分割はVBAコードを改変することで可能となりました。 http://oshiete1.goo.ne.jp/qa3739293.html(以前の質問です。) 問題は、その分割したファイルを当方の別ツールにてStreamReaderで読み込んだ際に起こります。 20行づつに分割したエクセルファイルでは、20行目以降には文字列は入っておりませんが、StreamReaderで読み込むと20行以上(もしくは以下)読み込んでしまい、ファイル内の情報を正しく読み取ってくれません。 ファイルの作成方法に問題があるのでしょうか。 それとも、StreamReaderではなく、別の方法で最終行までの文字列を読み込んだほうがいいのでしょうか。 ご教示いただければ幸いに思います。 宜しくお願いいたします。 以下、作成したコードです。 ~分割するコード~ Dim xlApp As Object = CreateObject("Excel.Application") Dim xlwb As Microsoft.Office.Interop.Excel.Workbook = xlApp.Workbooks.Open(TextBox1.Text) Dim xlsheet As Microsoft.Office.Interop.Excel.Worksheet xlsheet = xlwb.Worksheets("Sheet1") Dim d As String d = xlsheet.Range("A65536").End(Excel.XlDirection.xlUp).Row Dim sh1 As Excel.Worksheet sh1 = xlwb.Worksheets("Sheet1") '元データシート Dim rs As Integer = 20 Dim i As Integer Dim m As String = 1 MsgBox(d + "件ありました(=゜ω゜)ノ") '分割フォルダを作成 System.IO.Directory.CreateDirectory(System.IO.Directory.GetCurrentDirectory() + "\分割フォルダ") Dim s As Integer = 1 For i = 1 To d Step rs Dim dire As String = (System.IO.Directory.GetCurrentDirectory()) Dim xlFilePath As String = (dire + "\分割フォルダ\" + m + "つ目.csv") Dim xlApp3 As Object = CreateObject("Excel.Application") Dim xlwb3 As Microsoft.Office.Interop.Excel.Workbook = xlApp3.Workbooks.add Dim xlsheet3 As Microsoft.Office.Interop.Excel.Worksheet xlApp3.DisplayAlerts = False xlsheet3 = xlwb3.Worksheets("Sheet1") sh1.Range(sh1.Cells(s, "A"), sh1.Cells(s + rs - 1, "B")).Copy() xlsheet3.Paste() xlsheet3.SaveAs(xlFilePath) xlwb3.Close(True) xlApp3 = Nothing xlwb3 = Nothing xlsheet3 = Nothing m += 1 s = s + rs Next i MsgBox("分割OK♪") xlwb.Close(True) xlApp = Nothing xlwb = Nothing xlsheet = Nothing ~ファイルを読み込むコード~ Dim hReader As New System.IO.StreamReader(FileName) Dim lCount As Int64 While (hReader.Peek() >= 0) hReader.ReadLine() lCount += 1 End While MsgBox(lCount) hReader.Close()
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- n-jun
- ベストアンサー率33% (959/2873)
よくはわからないですが、Excelファイルに20行ずつ分割しても、 実際のシートの行数は6万行とかあります。 その辺の問題ではないのでしょうか? 例えばテキストファイル等にしてみたりは無理ですか? 経験がないので参考にならないかも知れませんが。 http://jeanne.wankuma.com/tips/stream/readtoend.html