

No.2ベストアンサー
- 回答日時:
>Set MyTxt = Nothing
>Set MyTxt = FSO.OpenTextFile(Strpath, 1)
>とすれば実現できます。
>しかし、この方法は一般的でしょうか?
はい、通常、そのようにします。
但し、Set MyTxt = Nothingの前で
MxTxt.Closeを実行したほうがよいでしょう。
>OpenTextFileをリセットするコマンドって用意されていませんか?
残念ながら、ありません。
以下は、ファイルの全行を読み込み、内部に格納し、
先頭行と最終行の内容を画面に表示しています。(もちろん、他の行も可能)
サイズが約25Mバイトの10万行のファイルを読み込んだ場合でも2~3秒で処理できました。(もちろんマシンによる個体差はありますが)
--------------------------------------------------
Option Explicit
Sub Sample()
Dim FSO As Object
Dim OTS As Object
Dim filename As String
Dim strText As String
Dim inCount As Long
Dim strFileName As String
Dim strArray() As String
Set FSO = CreateObject("Scripting.FileSystemObject")
filename = "c:\goo\data.txt"
Set OTS = FSO.OpenTextFile(filename, 1)
inCount = 0
Do While OTS.AtEndOfStream = False
strText = OTS.ReadLine
ReDim Preserve strArray(inCount)
strArray(inCount) = strText
inCount = inCount + 1
Loop
OTS.Close
Set OTS = Nothing
Set FSO = Nothing
Debug.Print "inCount=" + CStr(inCount)
Debug.Print strArray(0)
Debug.Print strArray(inCount - 1)
End Sub
--------------------------------------------------
今回のような場合は、全行読み込んでから、処理したほうが
簡単かと思うのですが、そのようにしたくない理由がなにかあるのでしょうか?
(例えば、ファイルサイズが非常に大きいとかです)

No.1
- 回答日時:
残念ながらReadLineにはそのような機能は提供されていません。
なので、全行を読み込み、内部のメモリに保管しておき、それを参照するのが、
もっとも良い方法でしょう。但し、行数が、あまり多くないことが前提になります。
どのような理由で、そのようなことをなさりたいのかを提示していただければ、
別の解決方法があるかも知れません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでCSVファイルを途中行まで読んだ後で最初の行から読み直す方法はありますか?
その他(プログラミング・Web制作)
-
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
Excel.VBA テキストファイルを指定行数からの読み込む
Excel(エクセル)
-
-
4
VBScriptで、ファイルから任意の行のみ取り出す方法について
その他(プログラミング・Web制作)
-
5
VBScript(vbs)での行の取得について
その他(プログラミング・Web制作)
-
6
[エクセル VBA]テキストファイルから特定の行のみを抜き出したい 下記のようなテキストファイルから
Excel(エクセル)
-
7
javaで、、、
Java
-
8
vbsでテキストファイル内の文字列検索
Visual Basic(VBA)
-
9
VBスクリプトでテキストファイルの行数カウント
その他(プログラミング・Web制作)
-
10
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
11
readLine()ではじめから読み直す方法
Java
-
12
ステートメントの末尾が不正です
Windows Vista・XP
-
13
VBA:Openステートメントで開いたCSVファイルの特定行を削除する方法
その他(プログラミング・Web制作)
-
14
VBAでテキスト出力時のスペースについて
Visual Basic(VBA)
-
15
テキストファイルから特定の文字列が入った行を取得したいです。 例えば下記のような文が記載されたテキス
Visual Basic(VBA)
-
16
VBSでテキストファイルの2行目から最終行までを別のファイルに出力
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA コードが同じでも...
-
ReadLineでの読み出し行を指定する
-
拡張子 ”log” と ” dat” の違い
-
openした後、closeしないでプロ...
-
エディットボックスの表示方法...
-
ExcelをCSV書き出す場合のシー...
-
Windowsで複数のファイルを同じ...
-
C言語でファイル名を取得
-
Edge スクレイピング
-
window.open でのファイル指定方法
-
vba dir の相対パス
-
awkスクリプトでダブルクォーテ...
-
JSP URLに表示される拡張子 .jsp
-
ディレクトリの判別
-
メールアドレスでメンバー認証
-
1行がやたら長いテキストをバッ...
-
fgets で値が取得できない
-
perl ファイルが開かない
-
batファイルでrenameができませ...
-
drtファイルはどうしたら開...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルを途中行まで...
-
ExcelをCSV書き出す場合のシー...
-
MATLAB グローバル変数の宣言
-
ReadLineでの読み出し行を指定する
-
ファイルからある文字列の個数...
-
openした後、closeしないでプロ...
-
DBMとハッシュ
-
Perlの変数に文字数制限(容量...
-
JavaでCSVファイルを高速に読む...
-
2つのCSVファイルをマッチング
-
Shift-jisで正規表現
-
リストボックスから選択、結果...
-
C言語でのファイルのデータ更...
-
perlでのクローリングについて
-
パーミッションについて
-
VB6.0でDB接続する際に切断時の...
-
ファイル入出力のタイミング
-
STDINから何度も読み込むことは...
-
CGIからPHPへデータを渡したい
おすすめ情報
ありがとうございます。
指定した行に飛ぶことは無理かも知れませんが
最初の行から読み直すという操作であれば
Set MyTxt = Nothing
Set MyTxt = FSO.OpenTextFile(Strpath, 1)
とすれば実現できます。
しかし、この方法は一般的でしょうか?
OpenTextFileをリセットするコマンドって用意されていませんか?
ありがとうございます。
参考になりました。