開いているファイルの現在の読み取り位置または書き込み位置を取得(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ソースを実行した結果
関連記事
-  
              
- 
      「ファイルを開く」ダイアログボックス(FindFile メソッド)FindFile メソッド 「ファイルを開く」ダイアログボックスを表示します。G … 
-  
              
- 
      テキストファイル:データを読み込む(Get ステートメント)Get ステートメント Open ステートメント をランダムアクセスモード(Ra … 
-  
              
- 
      FileDialog オブジェクトを取得する(FileDialog プロパティ)FileDialog プロパティ FileDialog オブジェクト を取得しま … 
-  
              
- 
      開いているファイルの読み取り位置または書き込み位置を設定(Seek ステートメント)Seek ステートメント Open ステートメント で開いているファイルで、次に … 
-  
              
- 
      FileDialogFilters コレクション・FileDialogFilter オブジェクトFileDialogFilters コレクション FileDialog オブジェ … 
-  
              
- 
      「ファイル」ダイアログボックスを表示・設定(FileDialog オブジェクト)FileDialog オブジェクト FileDialog オブジェクト のメソッ … 
-  
              
- 
      「名前を付けて保存」ダイアログボックスを表示(GetSaveAsFilename メソッド)GetSaveAsFilename メソッド 「名前を付けて保存」ダイアログボッ … 
-  
              
- 
      テキストファイル:データを書き込む(Write # ステートメント)Write # ステートメント Open ステートメント をシーケンシャル出力モ … 
-  
              
- 
      フルパスからファイル名、パスを取得するフルパスからファイル名のみを取得する フルパスからファイル名を取得するには、Di … 
-  
              
- 
      テキストファイル:データを書き込む(Print # ステートメント)Print # ステートメント Open ステートメント をシーケンシャル出力モ … 
 
        

