[[20050519204538]] 『ファイル全体を読み込みたい』(難) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ファイル全体を読み込みたい』(難)
 はじめまして。いつも参考にさせていただいています!
 マクロは自動記録程度しか経験のないものです。 
 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.