[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイル全体を読み込みたい』(難)
はじめまして。いつも参考にさせていただいています! マクロは自動記録程度しか経験のないものです。 65536行以上あるテキストファイルをエクセルで開きたいのですが、 1シートの限界の65536行を超えるたびに新しいシートを追加してファイル全体を読み込むようにしたいのです。 自動記録+こちらの過去ログでのエラートラップの処理法等を参考にしながらいろいろ試してみましたが、 やはり初心者には難しくて・・・(;へ;)
どなたか、ご教授いただけましたら大変助かります。 どうぞよろしくお願い申し上げます。 win2000 Excel2003
時間かかります・・。(^_^A;
Sub Test()
MyTextName = Application.GetOpenFilename(FileFilter:="全てのファイル (*.*),*.*", _
Title:="テキスト読み込み")
If StrConv(MyTextName, vbUpperCase) = "FALSE" Then Exit Sub
Set MySh = Sheets.Add
Open MyTextName For Input As #1
Do Until EOF(1)
MyCount = MyCount + 1
Application.StatusBar = "読み込み中です(" & Format(MyCount, "#,##0") & "行目)"
Line Input #1, MyText
MyR = MyR + 1
If MyR > 65536 Then
MyR = 1
Set MySh = Sheets.Add
End If
MySh.Cells(MyR, 1).Value = MyText
MyTextCount = MyTextCount + 1
Loop
MyTextCount = Format(MyTextCount, "#,##0")
Close #1
Application.StatusBar = False
MsgBox "読み込みが完了しました。" & vbCr & "行数=" & MyTextCount & "行"
End Sub
(川野鮎太郎)
川野様 早々にご回答いただきまして有難うございます! 試してみましたところ、バッチリ読み込み完了いたしました♪ たしかに時間はかかりますが、手作業でテキストファイルを分割することを考えたら何の問題もありません(^^) いただいたコードを見ましたら、やはり私が作ってたものとは全然ちがうものですね。 私のなんてエンドレスループに陥ってしまったりでとんでもない事になったりしました〜(^^;) いただいたコードもちゃんと分析してお勉強致します! 大変有難うございました!!(難)
今、コードを確認したら、Set MySh = Sheets.Addが最初に入っていたので、 場所を変えました。 キャンセルして抜ける前にシート作るのはまずかった・・・。 (川野鮎太郎)
川野様 再び有難うございます! なるほど、マクロとはキャンセルする場合等いろんな事に考慮しながら作らなければいけないのですね。よく分かりました! これからもこちらで沢山勉強させていただきますす!(難)
こんにちは。 速くはないけど。 http://www.vbalab.net/vbaqa/data/excel/log/tree_373.htm#1910 (Jaka)
Jaka様 有難うございます! さっそく試させていただきましたが、開始行や改頁行が指定できたり、カンマ区切りにも出来たり、かなりの感動仕様です(^^) かなり長いコードですが、頑張って解読してちゃんとお勉強させていただきます! 大変有難うございました!!(難)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.