Visual Basic for Applications:
Pisanie pliku tekstowego
Jak to zrobić:
VBA oferuje kilka metod na zapis do pliku, ale jedną z najprostszych dróg jest użycie FileSystemObject
. Oto krok po kroku, jak stworzyć prosty plik tekstowy i zapisać do niego dane:
Dodaj odniesienie do Microsoft Scripting Runtime: Najpierw upewnij się, że twój edytor VBA ma dostęp do
FileSystemObject
. Przejdź do Narzędzia > Odniesienia w edytorze VBA i zaznacz “Microsoft Scripting Runtime”.Utwórz Plik Tekstowy: Poniższy fragment kodu VBA pokazuje, jak utworzyć plik tekstowy i zapisać do niego linię tekstu.
Sub WriteToFile()
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim textFile As Object
' Parametry CreateTextFile: (NazwaPliku, Nadpisz, Unicode)
Set textFile = fso.CreateTextFile("C:\yourPath\example.txt", True, False)
' Napisz linię tekstu
textFile.WriteLine "Cześć, VBA!"
' Zamknij plik
textFile.Close
End Sub
Ten skrypt tworzy (lub nadpisuje, jeśli już istnieje) plik o nazwie example.txt
w określonym katalogu i zapisuje “Cześć, VBA!” do niego, zanim zamknie plik, aby zapisać zmiany.
- Przykładowy Wynik:
Po uruchomieniu powyższego skryptu VBA znajdziesz plik o nazwie example.txt
z następującą zawartością:
Cześć, VBA!
Pogłębienie:
FileSystemObject
(FSO), część biblioteki Microsoft Scripting Runtime, oferuje bogaty zestaw właściwości i metod do operacji na plikach, idąc dalej niż tradycyjne operacje na plikach oferowane przez VBA (np. Open
, Print
#, Write
#). Oprócz obsługi plików FSO może również manipulować folderami i dyskami, co czyni go potężnym narzędziem do operacji na systemie plików w VBA.
Warto jednak zauważyć, że choć FSO prezentuje bardziej nowoczesne podejście do operacji na plikach w VBA, może wprowadzić dodatkowe obciążenie dla prostych zadań w porównaniu z natywnymi instrukcjami obsługi plików VBA. Ponadto, ponieważ FSO jest częścią zewnętrznej biblioteki, przenośność i kompatybilność z innymi systemami (np. wcześniejszymi wersjami Office, Office na Mac) mogą stanowić problem.
W kontekstach, gdzie wydajność, kompatybilność lub minimalne zależności zewnętrzne są kluczowe, programiści mogą rozważyć użycie wbudowanych w VBA technik obsługi plików. Jednakże, dla bardziej złożonych operacji lub przy pracy w środowisku, gdzie te obawy są złagodzone (takim jak kontrolowane środowisko korporacyjne), korzyści płynące z FileSystemObject często przeważają nad jego wadami.