Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12794 / 13646 ツリー ←次へ | 前へ→

【8517】textファイルの読み込み 03/10/22(水) 15:08 質問
【8523】Re:textファイルの読み込み りん 03/10/22(水) 16:11 回答
【8530】Re:textファイルの読み込み Jaka 03/10/22(水) 17:30 回答
【8624】Re:textファイルの読み込み 03/10/27(月) 15:18 お礼

【8517】textファイルの読み込み
質問   E-MAIL  - 03/10/22(水) 15:08 -

引用なし
パスワード
   無茶な質問かもしれませんが・・

Workbooks.OpenText "G:\FX\TRESD809.TXT", STARTROW:=2, _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""


という風にしてテキストファイルを読み込もうと思っているのですがそのテキストファイルが大きくて(改行や余分なヘッダーが多いため)65536行を超えてしまいます。opentextで読み込む以前の段階でテキストファイルを操作して改行やヘッダーを削除して65536行におさまるようにするマクロを組むことは可能でしょうか?

【8523】Re:textファイルの読み込み
回答  りん E-MAIL  - 03/10/22(水) 16:11 -

引用なし
パスワード
   ゆ さん、こんにちわ。

↓65536行を越えるファイルを読み込む方法
http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=7146;id=Excel

http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=8743;id=Excel


余分な改行やヘッダが多いということですが、空改行ですか?
それともブランク等が入っているのでしょうか?

Openステートメントで読み込み用のファイルを作って、それを読み込む方法。

File1 = "G:\FX\TRESD809.TXT" '元ファイル
File2 = "G:\FX\TRESD809A.TXT" '読み込み用ファイル
Open File1 For Input as #1
Open File2 For Output as #2
  Do Until Eof(1)
   Line Input #1, A$
   If A$ <> "" Then
     Print #2, A$
     NN& = NN& + 1
   End If
  Loop
Close
Msgbox NN& ,vbInformation,"Rec" '結局何行あるのかを表示
...
で、

Workbooks.OpenText File2, STARTROW:=2, _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""

と続けば、空改行の部分は省いて読み込むことになります。

If A$ <> "" 〜の部分を任意の文字を含まないとか、文字列の長さを何文字以上とかいう風に条件を変えれば、お望みのファイルが作れると思いますよ。

【8530】Re:textファイルの読み込み
回答  Jaka  - 03/10/22(水) 17:30 -

引用なし
パスワード
   りんさん こんにちは。
私のは、こっちの方が良いとおもいます。

[#1910]
[#1911]

基本TBL行数 = 1000
   ↓
基本TBL行数 = 500

の方が良いと思います。

列数が多い場合は、200、100と減らした方が良いです。
1000のまま、列数が50列もあるCSVファイルを扱うとフリーズするかもしれません。
列数が多いほど危険。
そのへんは改良してください。
因みにこう言うところへ来ては行けなくなってしいました。

では。

【8624】Re:textファイルの読み込み
お礼   E-MAIL  - 03/10/27(月) 15:18 -

引用なし
パスワード
   ありがとうございました!
どうにかこうにか50000台まで縮めることができました。


▼りん さん:
>ゆ さん、こんにちわ。
>
>↓65536行を越えるファイルを読み込む方法
>http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=7146;id=Excel
>
>http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=8743;id=Excel
>
>
>余分な改行やヘッダが多いということですが、空改行ですか?
>それともブランク等が入っているのでしょうか?
>
>Openステートメントで読み込み用のファイルを作って、それを読み込む方法。
>
>File1 = "G:\FX\TRESD809.TXT" '元ファイル
>File2 = "G:\FX\TRESD809A.TXT" '読み込み用ファイル
>Open File1 For Input as #1
>Open File2 For Output as #2
>  Do Until Eof(1)
>   Line Input #1, A$
>   If A$ <> "" Then
>     Print #2, A$
>     NN& = NN& + 1
>   End If
>  Loop
>Close
>Msgbox NN& ,vbInformation,"Rec" '結局何行あるのかを表示
>...
>で、
>
>Workbooks.OpenText File2, STARTROW:=2, _
>DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
>Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar:=""
>
>と続けば、空改行の部分は省いて読み込むことになります。
>
>If A$ <> "" 〜の部分を任意の文字を含まないとか、文字列の長さを何文字以上とかいう風に条件を変えれば、お望みのファイルが作れると思いますよ。

12794 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free