![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?8acaa2e)
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
--------------------------------------------------
今回のような場合は、全行読み込んでから、処理したほうが
簡単かと思うのですが、そのようにしたくない理由がなにかあるのでしょうか?
(例えば、ファイルサイズが非常に大きいとかです)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?8acaa2e)
No.1
- 回答日時:
残念ながらReadLineにはそのような機能は提供されていません。
なので、全行を読み込み、内部のメモリに保管しておき、それを参照するのが、
もっとも良い方法でしょう。但し、行数が、あまり多くないことが前提になります。
どのような理由で、そのようなことをなさりたいのかを提示していただければ、
別の解決方法があるかも知れません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Excel(エクセル) セルを数式で指定する方法 5 2022/04/13 16:55
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- その他(プログラミング・Web制作) 【python】Excelファイルを読み込む際の日付の表示形式を任意にする 2 2022/11/24 14:21
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Excel(エクセル) Excel Powerクエリーの質問、行数指定は可能でしょうか? 2 2022/08/22 12:54
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
VBScriptで、ファイルから任意の行のみ取り出す方法について
その他(プログラミング・Web制作)
-
VBAでCSVファイルを途中行まで読んだ後で最初の行から読み直す方法はありますか?
その他(プログラミング・Web制作)
-
-
4
Excel.VBA テキストファイルを指定行数からの読み込む
Excel(エクセル)
-
5
vbsでテキストファイル内の文字列検索
Visual Basic(VBA)
-
6
テキストファイルから特定の文字列が入った行を取得したいです。 例えば下記のような文が記載されたテキス
Visual Basic(VBA)
-
7
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
8
[エクセル VBA]テキストファイルから特定の行のみを抜き出したい 下記のようなテキストファイルから
Excel(エクセル)
-
9
VBScriptでCSVファイルを読み出したい
その他(プログラミング・Web制作)
-
10
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
11
テキストファイルの途中行から読み込む方法について
Visual Basic(VBA)
-
12
VBAで巨大なファイルの途中からの読み込み
Visual Basic(VBA)
-
13
vbscriptを用いて他のVBSファイルを実行
その他(プログラミング・Web制作)
-
14
VBScript(vbs)での行の取得について
その他(プログラミング・Web制作)
-
15
VBSの処理中一旦処理を止めて再開させたい。
Visual Basic(VBA)
-
16
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
17
WScript.Echo と msgbox
その他(Microsoft Office)
-
18
vbsで最後の行を削除する
その他(プログラミング・Web制作)
-
19
ExcelVBA テキストファイルから特定行を抽出し、エクセルファイルのテキストボックスに張り付ける
その他(コンピューター・テクノロジー)
-
20
VBS実行時エラー オブジェクトがありません 回避方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
datファイルってなんですか?
-
JavaでCSVファイルを高速に読む...
-
VB6.0でDB接続する際に切断時の...
-
ExcelをCSV書き出す場合のシー...
-
拡張子 ”log” と ” dat” の違い
-
VBAでCSVファイルを途中行まで...
-
テキストデータから指定した1...
-
ダイアモンド演算子<>に対するb...
-
タブの色を変更する方法
-
重複ファイル名ある場合ファイ...
-
Perl初心者です。同一データを...
-
指定の行数目から行を抽出する
-
perlのflock関数でロックをかけ...
-
Net::FTPを使いファイル一覧の...
-
perlのエディタでおすすめを教...
-
データファイルからのデータの...
-
HTMLのフォームで画像と文...
-
csvで順番の入れ替え
-
レコードの書込み判断
-
Perlでファイルを読み込みタグ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCSVファイルを途中行まで...
-
VBAで巨大なファイルの途中から...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルの特定行を書...
-
openした後、closeしないでプロ...
-
ReadLineでの読み出し行を指定する
-
エクセルVBA コードが同じでも...
-
csvファイル改行コードの置換に...
-
C言語でのファイルのデータ更...
-
Perlの変数に文字数制限(容量...
-
perlにて2つのファイル比較
-
JavaでCSVファイルを高速に読む...
-
VB6.0でDB接続する際に切断時の...
-
MATLAB グローバル変数の宣言
-
alarmのタイムアウト後の処理で...
-
perlで、後ろの行を読んで、前...
-
DBMとテキストファイルのどちら...
-
エクセルVBAでCSVファイ...
-
拡張子 ”log” と ” dat” の違い
-
テキストデータから指定した1...
おすすめ情報
ありがとうございます。
指定した行に飛ぶことは無理かも知れませんが
最初の行から読み直すという操作であれば
Set MyTxt = Nothing
Set MyTxt = FSO.OpenTextFile(Strpath, 1)
とすれば実現できます。
しかし、この方法は一般的でしょうか?
OpenTextFileをリセットするコマンドって用意されていませんか?
ありがとうございます。
参考になりました。