お世話になっております。
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()
No.1ベストアンサー
- 回答日時:
よくはわからないですが、Excelファイルに20行ずつ分割しても、
実際のシートの行数は6万行とかあります。
その辺の問題ではないのでしょうか?
例えばテキストファイル等にしてみたりは無理ですか?
経験がないので参考にならないかも知れませんが。
http://jeanne.wankuma.com/tips/stream/readtoend. …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba SelStart、SelLen教えてく...
-
【VBA】マクロの入ったファイル...
-
A列に記載されているフォルダ...
-
VBA listBoxから
-
ExcelVBA シート名を複数セルか...
-
現在のブックを閉じないで、マ...
-
Outlookの「受信日時」「送信者...
-
ユーザーフォームに別シートか...
-
VBAコンボボックスで選択した値...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
Outlookの「受信日時」「件名」...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
Excelのマクロでワードのテキス...
-
【ExcelVBA】インデックスが有...
-
VBA 別ブックからコピペしたい...
-
VBA実行後に元のセルに戻りたい
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マイナポータルの住宅借入金当...
-
簡単にEXEファイルを作れるプロ...
-
ftpコマンドの戻り値をチェック...
-
VB6にて、テキストファイルの内...
-
warファイル 「種類:WAR ファ...
-
JCL(富士通/MSP)について教...
-
秀丸エディタでのファイル分割
-
ファイルと同名のフォルダを作成
-
FTPコマンドのリターンコー...
-
VB6.0 テキストファイルの操作...
-
VB Scriptで隠しファイル、フォ...
-
コマンドプロンプト "expand" ...
-
HTMLでファビコンを変更したいです
-
VBAのzip解凍についてのご質問です
-
ISOファイルの編集方法
-
.urlファイルのModifiedとは?
-
VB.NETでフォルダの一覧を更新...
-
ファイル比較を出力したい
-
基本的なDOSコマンドがわかりま...
-
VC++にてファイル入出力サンプ...
おすすめ情報