Seek 関数

Open ステートメントを使用して開かれたファイル内の現在の読み取り/書き込み位置を指定する長整数型 (Long) の値を返します。

構文

Seek(filenumber)

必須の filenumber引数は、有効なファイル番号を含む整数です。

解説

Seek は 1 ~ 2,147,483,647 (= 2^31 - 1) の範囲の数を返します。

各ファイル アクセス モードの戻り値を次に示します。

モード 戻り値
Random 読み取りまたは書き込まれた次のレコードの番号。
バイナリ出力追加入力 次の操作が行われるバイト位置。 ファイル内の 1 番目のバイトが 1、2 番目のバイトが 2 で、以下同様になります。

次の例では、Seek 関数を使用して現在のファイル位置を取得します。 この例では、 TESTFILE がユーザー定義型のレコードを含むファイルであると想定しています Record

Type Record    ' Define user-defined type.
    ID As Integer
    Name As String * 20
End Type

ランダム モードで開かれたファイルの場合、 Seek は次のレコードの番号を返します。

Dim MyRecord As Record    ' Declare variable.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
Do While Not EOF(1)    ' Loop until end of file.
    Get #1, , MyRecord    ' Read next record.
    Debug.Print Seek(1)    ' Print record number to the Immediate window.
Loop
Close #1    ' Close file.

Random 以外のモードで開いたファイルの場合、Seek は次の操作が行われるバイト位置を返します。 が TESTFILE 数行のテキストを含むファイルであるとします。

Dim MyChar
Open "TESTFILE" For Input As #1    ' Open file for reading.
Do While Not EOF(1)    ' Loop until end of file.
    MyChar = Input(1, #1)    ' Read next character of data.
    Debug.Print Seek(1)    ' Print byte position to the Immediate window.
Loop
Close #1    ' Close file.

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。