VBA を使用してテキスト ファイルの最初の行を確認する方法

VBA を使用してテキスト ファイルの最初の行を確認する方法

テキスト ファイルを読み込んでデータを編集するときに、最初の行かどうかを知りたいです。他の行のデータを更新したくないからです。

★印の位置でコードを分岐させたいです。

これを行う最善の方法は何ですか?

Set file = FSO.OpenTextFile(filepath)

Do Until file.AtEndOfStream
    line = file.ReadLine
    If ★ Then
        'edit data of first line
    ElseIf ... Then    'other lines' condition
    'update data of other lines            
    End If
    'Write line to text file        
Loop

答え1

これはかなり些細なことですが、最初の行を読む前にこのチェックを行う必要があります。

常に自分でファイルを開く場合は、最初の反復がファイルの先頭にあることを確認できます。

Set file = FSO.OpenTextFile(filepath)
Set firstline = True

Do Until file.AtEndOfStream
    line = file.ReadLine
    If firstline Then
        firstline = False
        'Do first line stuff
    ElseIf ...
    End If
Loop

ファイルが実際に先頭にあるかどうかわからない場合 (つまり、コードのその部分で自分でファイルを開いていない場合) は、次のようになります。

Set file = FSO.OpenTextFile(filepath)

Do Until file.AtEndOfStream
    line = file.ReadLine
    If file.Line == 2 Then ' we are actually at the second line now (after reading)
        'Do first line stuff
    ElseIf ...
    End If
Loop

関連情報