¿Cómo usar la declaración Seek en VBA?

La declaración `Seek` en VBA (Visual Basic for Applications) se utiliza para establecer la posición actual de lectura/escritura de un archivo abierto. Esto es útil cuando necesitas moverte a una posición específica en un archivo para leer o escribir datos.

Aquí te dejo un ejemplo básico de cómo usar la declaración `Seek` en VBA:

  • Abrir el archivo: Usamos la instrucción `Open` para abrir un archivo.
  • Mover la posición: Usamos la declaración `Seek` para movernos a la posición deseada en el archivo.
  • Leer o escribir datos: Una vez que estamos en la posición correcta, usamos las instrucciones de lectura como `Input` o `Line Input`, o de escritura como `Print` o `Write`.
  • Cerrar el archivo: Finalmente, usamos `Close` para cerrar el archivo.

Aquí tienes un ejemplo que ilustra cómo usar `Seek`:

Sub ExampleSeek()
    Dim filePath As String
    Dim fileNumber As Integer
    Dim readData As String

    ' Ruta del archivo
    filePath = "C:rutadelarchivo.txt"
    
    ' Obtener el siguiente número de archivo disponible
    fileNumber = FreeFile

    ' Abrir el archivo en modo random para leer
    Open filePath For Random As #fileNumber Len = 32 ' Usar un tamaño de registro según sea necesario
    
    ' Mover el puntero del archivo a la posición 2
    Seek #fileNumber, 2
    
    ' Leer datos desde la nueva posición
    Input #fileNumber, readData

    ' Mostrar los datos leídos
    MsgBox "Datos leídos: " & readData

    ' Cerrar el archivo
    Close #fileNumber
End Sub

Consideraciones Importantes:

  • Tipos de acceso: La declaración `Seek` se puede utilizar con archivos abiertos en modo `Random` o `Binary`. No se puede usar con archivos abiertos en modo `Input` o `Output`.
  • Base uno vs. cero: En archivos binarios, la posición se cuenta desde 1, mientras que en la mayoría de los lenguajes la indexación es desde cero.
  • Tamaño del registro: En modo `Random`, debes especificar el `Len` (longitud del registro) al abrir el archivo, ya que el `Seek` se moverá en incrementos de esa longitud.
  • Errores: Si intentas mover el puntero del archivo a una posición negativa o a una posición más allá del final del archivo, se producirá un error.

Este es un ejemplo básico y típico de cómo utilizar la declaración `Seek` en un contexto de VBA. Puedes ajustarlo según sea necesario para adaptarlo a diferentes tipos de archivos y casos de uso.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project