開いているファイルの現在の読み取り位置または書き込み位置を取得(Seek 関数)
Seek 関数
Open ステートメント で開いたファイル内の現在の読み取り位置または書き込み位置を取得します。
<取得>
Seek ( filenumber )
引数・戻り値
- filenumber ・・・ Open ステートメント で、割り当てられたファイル番号を指定します。
- 戻り値 ・・・ 長整数型(Long)の値( 1 ~ 2,147,483,647(= 2^31 ? 1)の範囲の数)。
Open ステートメント をランダムアクセスモード(Random)で開いている場合は、読み取りまたは書き込みが行われるレコードの番号(最後に読み書きを行ったレコードの次の番号)となります。
Open ステートメント をシーケンシャル入力モード(Input)、シーケンシャル出力モード(Output)、追加モード(Append)、バイナリモード(Binary) のいずれかで開いている場合は、読み取りまたは書き込みが行われるバイト位置(最後に読み書きを行ったバイト番号の次の番号)となります。
- filenumber ・・・ Open ステートメント で、割り当てられたファイル番号を指定します。
- 戻り値 ・・・ 長整数型(Long)の値( 1 ~ 2,147,483,647(= 2^31 ? 1)の範囲の数)。
Open ステートメント をランダムアクセスモード(Random)で開いている場合は、読み取りまたは書き込みが行われるレコードの番号(最後に読み書きを行ったレコードの次の番号)となります。
Open ステートメント をシーケンシャル入力モード(Input)、シーケンシャル出力モード(Output)、追加モード(Append)、バイナリモード(Binary) のいずれかで開いている場合は、読み取りまたは書き込みが行われるバイト位置(最後に読み書きを行ったバイト番号の次の番号)となります。
Loc 関数の場合
ランダムアクセスモード(Random)でファイルを開いた場合は、最後に読み書きを行ったレコード番号を返します。また、バイナリモード(Binary)でファイルを開いた場合は、最後に読み書きを行ったバイト番号を返します。シーケンシャルモード(Input、Output、Append)の場合は、現在のバイト位置を 128 で割った値を返します。
Seek 関数 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Sub Sample_SeekFunction() Dim FileName As String Dim FNum As Integer Dim buf As String Dim str As String FileName = "C:\Documents\mydata\test03.txt" FNum = FreeFile 'ファイルを開く Open FileName For Input As #FNum Do Until EOF(FNum) Line Input #FNum, buf str = str & buf & ":" & Seek(FNum) & "バイト" & vbCrLf Loop 'ファイルを閉じる Close #FNum MsgBox str End Sub |
実行結果
サンプルVBAソース で、読み込むファイル「test03.txt」の内容
サンプルVBAソースを実行した結果
関連記事
-
EOF 関数
EOF 関数 Open ステートメント をランダムアクセスモード(Random) …
-
ディレクトリまたはフォルダの削除(RmDir ステートメント)
ディレクトリまたはフォルダの削除 ディレクトリまたはフォルダを削除するには、Rm …
-
テキストファイル:データを書き込む(Print # ステートメント)
Print # ステートメント Open ステートメント をシーケンシャル出力モ …
-
テキストファイル:データを読み込む(Input 関数・InputB 関数)
Input 関数・InputB 関数 Open ステートメントをシーケンシャル入 …
-
ファイルのタイムスタンプを取得(FileDateTime 関数)
ファイルのタイムスタンプを取得 ファイルのタイムスタンプを取得するには、File …
-
テキストファイル:データを書き込む(Put ステートメント)
Put ステートメント Open ステートメント をランダムアクセスモード(Ra …
-
ディレクトリまたはフォルダの作成(MkDir ステートメント)
ディレクトリまたはフォルダの作成 新しいディレクトリまたはフォルダを作成するには …
-
テキストファイル:データを読み込む(Input # ステートメント)
Input # ステートメント Open ステートメント をシーケンシャル入力モ …
-
特殊フォルダを取得(wsh.SpecialFolders)
CreateObject 関数:特殊フォルダを取得(WSH.SpecialFol …
-
ファイルサイズを取得(FileLen 関数)
ファイルサイズを取得 ファイルのサイズ(バイト数)を取得するには、FileLen …