Operacje na plikach

Jedną z ciekawszych rzeczy, które można robić dzięki makrom to edytowanie innych plików. Plik można otworzyć do odczytu, lub do zapisu. Poniższy kod przedstawia procedurę, która zapisuje do pliku C:\Temp\Liczby.txt kolejne liczby znajdujące się w komórkach A1:A10 w aktywnym arkuszu.

Sub PlikZapis()
    Dim a As Long
    Dim Liczba As Single
    
    Open "C:\Temp\Liczby.txt" For Output As #1
    For a = 1 To 10
        Liczba = Cells(a, 1)
        Print #1, Liczba
    Next a
    Close #1
End Sub

Instrukcja Open otwiera plik. Parametr Output określa, że plik zostanie otworzony do zapisu i jeśli wcześniej plik istniał, to zostanie nadpisany. Gdybyśmy zamiast Output użyli parametru Append, to w przypadku istnienia pliku dane zostaną dopisane na jego końcu. Parametr #1 oznacza numer uchwytu (gdybyśmy chcieli operować na kilku plikach jednocześnie, to podczas otwierania kolejnego pliku należy mu nadać kolejny numer). Następnie w pętli for odczytujemy wartość aktualnej komórki a instrukcja Print zapisuje wartość do pliku. Na końcu instrukcja Close zamyka plik i zwalnia zasoby.

Odczytanie danych z plików jest równie proste. Listing 20 przedstawia procedurę, która odczytuje 10 pierwszych liczb z pliku i wstawia je do kolejnych komórek. Instrukcja Open otwiera plik. Parametr Input oznacza, że otwieramy plik do odczytu. Następnie w pętli for za pomocą instrukcji Input odczytujemy kolejne wartości, które wstawiamy do kolejnych komórek. Na końcu instrukcja Close zamyka plik i zwalnia zasoby

Sub OdczytPlik()
    Dim a As Long
    Dim Liczba As Single
    
    Open "C:\Temp\Liczby.txt" For Input As #1
    For a = 1 To 10
        Input #1, Liczba
        Cells(a, 1) = Liczba
    Next a
    Close #1
End Sub