By Ajeet Kumar
    
FILE HANDLING IN VBA
OPEN STATEMENT
OPEN Statement is used to open a file into one of the five
modes- INPUT, OUTPUT, APPEND, RANDOM OR BINARY. There are 6 arguments available
to OPEN method. These are
1.      
File name as string data type
2.      
Mode-- Input, Output, Append, Random Or Binary
3.      
Access restriction—Read, Write, Read Write
4.      
Lock type—Shared, Lock Read, Lock Write, Lock
Read Write
5.      
File number—any integer number between 1 to 255
6.      
Length of records
The first and 5th arguments are required and
others are optional.
Syntax—
OPEN “STRFILENAME” [FOR MODE] [ACCESSRESTRICTION] [LOCKTYPE]
AS [#] INTFILENUMBER [LEN=INTRECORDLENGTH]
Example—
Open “myTextFile.txt” as #1
By default, the file is opened in random mode.
Next time, the file is referenced by the file number, not by
its name. For example, to close the above file, we code:
Close #1
Freefile() function
can be used to assign a file number to the file to be opened.
Input mode is used to read an existing file. Output mode is
used to write to a file, no matter whether the file exists or not. If file does
not exist, it is created. The old data is overwritten in this mode. To append
the records, we use append mode. The sequential files are read from beginning
to the end. To read any random record, we should use the random mode.
HOW TO READ OR WRITE
A SEQUENTIAL FILE
To read/ write a sequential file INPUT, PRINT and WRITE
statements are used. Their syntax is straight forward:
INPUT # INTFILENUMBER, VARIABLES-LIST-COMMA-SEPARATED
PRINT # INTFILENUMBER, VARIABLES-LIST-COMMA-SEPARATED
WRITE # INTFILENUMBER, VARIABLES-LIST-COMMA-SEPARATED
WRITE # is used mainly for comma separated files.
EXAMPLE1
Sub pReadTextFile()
    Dim varData
    Dim strFileName As
String
    Dim intFileNumber
As Integer
    With
Application.FileDialog(msoFileDialogFilePicker)
       
.AllowMultiSelect = False
        .Title =
"Choose the file"
        .Show
        If
.SelectedItems.Count = 0 Then
            MsgBox
"Cancelled"
            Exit Sub
        Else
           strFileName
= .SelectedItems(1)
        End If
    End With
    intFileNumber =
FreeFile()
    Open strFileName
For Input As #intFileNumber
    Input
#intFileNumber, varData
    MsgBox
Trim(varData)
    '' read the next
line
    Input
#intFileNumber, varData
    MsgBox
Trim(varData)
End Sub
 
 
 
No comments:
Post a Comment