
こんばんは。
EXCEL VBAでテキストファイルを読み込む事について質問です。
VBAでテキストファイルをこちらから指定する行数(上から何番目という感じで)からデーターを読み込みたいのですが、どの関数をつかっていいかわからず困っています。
1行ずつ読みこむ「Input Line関数」では、無駄な行まで読み込むので動作が遅くなります。
読み込みたい行はすでにわかっているので、最初からその行に飛んでからデーター読み込みたいと思ってます。
ちなみに指定する行数は、ファイルによって違います。
あらかじめ「Input Line関数」で、ある文字が何行目にあるかを探す行為をあらかじめ行っています。
みなさまのアイデアを拝借したく、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
速度は分かりませんが、これとか
http://officetanaka.net/excel/vba/filesystemobje …
あるいは、丸ごと読みこんで、改行コードでSplitして、文字列配列を相手に該当行検索も含めて処理するとか。
昨今のPCでは、相当大きなテキストファイルでもメモリー内で処理できると思います。
http://officetanaka.net/excel/vba/filesystemobje …
テキストファイルの構造によってはADOで処理する案も考えられますが、Recordsetにはファイルの先頭から(あるいは末尾先頭で)入っている事が保証されているのか、ちょっと心配。参考URLはCSVになっていますが、タブ区切りテキストファイル(拡張子.txt)でもいけます。
http://home.att.ne.jp/zeta/gen/excel/c04p47.htm
以上ご参考まで。
mitarashiさん
回答ありがとうございます。
いろいろ試したのですが、私のテクニック不足で回答内容と同様の処理にすることはできませんでした。
しかしそこからヒントを得まして結局、
(1)まずは1行ずつ読む(変数に格納するだけ)
(2)行数をカウントしていき、任意の行数になるまでループします。
(3)任意の行数になったら、書き出すようにする。
上記の処理(1行ずつ読む)でもmitarashiさんの言うとおり、昨今のPCだと思っていたよりも処理が早く終わりました。
まずは、この処理で作っていきたいと思います。
しかし、せっかくアドバイス頂いたのでFSOを勉強して使えるようにします!
朝早くにご回答頂き、誠にありがとうございました。
No.1
- 回答日時:
>読み込みたい行はすでにわかっているので、最初からその行に飛んでからデーター読み込みたいと思ってます。
であれば、FileSystemObjectを使用し、.SkipLineで飛ばしたい行数分ループさせてみではどうでしょう。
piyo_dansyakuさん
回答ありがとうございます。
回答通りにFSPを駆使してSkipLineでループさせようとしましたが、私のテクニック不足(FSOの理解不足)で、思った通りの処理ができませんでした。
しかし「行数分ループさせる」からヒントを得て、効率が悪いのですが最初から1行ずつ読んで(変数格納のみ)、任意行の時だけ書き出すという処理にしました。
こうすると、処理ができました。
一旦はこの処理で行きたいと思います。
しかし、FSOでSkipLineを駆使すればもっと処理が早くなるのでFSOを勉強してSkipLineを使えるように頑張りたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) セルを数式で指定する方法 5 2022/04/13 16:55
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(プログラミング・Web制作) 【python】Excelファイルを読み込む際の日付の表示形式を任意にする 2 2022/11/24 14:21
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel.VBA テキストファイルを指定行数からの読み込む
Excel(エクセル)
-
テキストファイルの途中行から読み込む方法について
Visual Basic(VBA)
-
VBAでCSVファイルを途中行まで読んだ後で最初の行から読み直す方法はありますか?
その他(プログラミング・Web制作)
-
-
4
[エクセル VBA]テキストファイルから特定の行のみを抜き出したい 下記のようなテキストファイルから
Excel(エクセル)
-
5
【VBA】テキストファイルから特定の文字列を抽出して、エクセルに出力する
Excel(エクセル)
-
6
VBA:Openステートメントで開いたCSVファイルの特定行を削除する方法
その他(プログラミング・Web制作)
-
7
ReadLineでの読み出し行を指定する
Visual Basic(VBA)
-
8
テキストファイルから指定行をExcelに抽出したい。
Excel(エクセル)
-
9
テキストファイルの一部分を抽出する方法について
Visual Basic(VBA)
-
10
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
11
【VBA】複数のtxtファイルから特定区間の複数行を呼び出し、エクセルにまとめたい。
Visual Basic(VBA)
-
12
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
13
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
14
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
15
VBAでCSVの1行目だけを書き換える方法
Excel(エクセル)
-
16
テキストファイルから特定の文字列が入った行を取得したいです。 例えば下記のような文が記載されたテキス
Visual Basic(VBA)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
19
EXCEL VBAでテキストファイルの特定の場所にデータを書き込む方法
Visual Basic(VBA)
-
20
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBでのテキストファイルへ参照...
-
【VBA】テキストファイルを指定...
-
shスクリプトでftp接続してファ...
-
EXCELのVBAでEOFを誤認識
-
Excelにて、フォルダ内のTextフ...
-
アスキー、バイナリーの違い、...
-
同一フォルダにある複数のテキ...
-
テキストファイルの最終行を消...
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
ExcelブックをGoogleスプレッド...
-
エクセルで複数のコメントのサ...
-
エクセルVBAで一つ上の階層...
-
frxファイルの役目
-
エディットボックスの数値をテ...
-
サブフォルダから部分一致のエ...
-
バッチファイル 別ファイルにリ...
-
DXFファイルをVBで取り込み、図...
-
xcopyコマンドの進行状況を表示...
-
ExcelのVBAでフォルダ指定がで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】テキストファイルを指定...
-
EXCELのVBAでEOFを誤認識
-
同一フォルダにある複数のテキ...
-
アスキー、バイナリーの違い、...
-
テキストファイルの最終行を消...
-
複数のテキストファイル内の複...
-
Excelにて、フォルダ内のTextフ...
-
UNIXの<ファイル名>\\rの意味
-
テキストファイル内容の取得。
-
VBSを使用し、指定フォルダ内の...
-
テキストファイルから漢字や数...
-
ファイル操作
-
VBScript(vbs)での行の取得につ...
-
vbaでテキストファイル(*.txt...
-
VBscript
-
VBAでテキストファイルを最後ま...
-
uwscでExcelに自動記入
-
VBで複数のテキストを結合する...
-
エクセル VBA テキストファイル...
-
VBAでテキストファイルの件...
おすすめ情報