Visual Basic for Applications:
Написання текстового файлу

Як це зробити:

VBA пропонує кілька способів запису у файл, але один з найпростіших способів - використання FileSystemObject. Ось поетапне керівництво зі створення простого текстового файлу та запису даних до нього:

  1. Підключення Microsoft Scripting Runtime: Спочатку, переконайтеся, що ваш редактор VBA має доступ до FileSystemObject. Перейдіть в меню Tools > References у редакторі VBA та виберіть “Microsoft Scripting Runtime.”

  2. Створення текстового файлу: Наступний код VBA демонструє, як створити текстовий файл і записати в нього рядок тексту.

Sub WriteToFile()
    Dim fso As FileSystemObject
    Set fso = New FileSystemObject
    
    Dim textFile As Object
    ' Параметри CreateTextFile: (Ім'яФайлу, Перезапис, Unicode)
    Set textFile = fso.CreateTextFile("C:\yourPath\example.txt", True, False)
    
    ' Запис рядка тексту
    textFile.WriteLine "Hello, VBA!"
    
    ' Закриття файлу
    textFile.Close
End Sub

Цей скрипт створює (або перезаписує, якщо він уже існує) файл під назвою example.txt у вказаній директорії та записує в нього “Hello, VBA!” перед закриттям файлу для збереження змін.

  1. Приклад результату:

Після запуску цього VBA скрипту ви знайдете файл під назвою example.txt з наступним змістом:

Hello, VBA!

Поглиблено:

FileSystemObject (FSO), який є частиною бібліотеки Microsoft Scripting Runtime, надає багатий набір властивостей та методів для роботи з файлами, що виходить за межі традиційного управління файлами в VBA (наприклад, Open, Print #, Write #). Крім роботи з файлами, FSO також може маніпулювати папками та дисками, роблячи його потужним інструментом для операцій з файловою системою у VBA.

Варто зазначити, однак, що хоча FSO представляє більш сучасний підхід до роботи з файлами у VBA, він може вносити накладні витрати для простих завдань порівняно з рідними командами обробки файлів VBA. Більше того, оскільки FSO є частиною зовнішньої бібліотеки, переносимість та сумісність з іншими системами (наприклад, попередні версії Office, Office для Mac) можуть бути проблемами.

У контекстах, де критично важливі продуктивність, сумісність або мінімізація зовнішніх залежностей, програмісти можуть розглянути використання вбудованих методів роботи з файлами в VBA. Однак, для більш складних операцій або при роботі в середовищі, де ці занепокоєння мінімізовані (наприклад, у контрольованому корпоративному середовищі), переваги FileSystemObject часто перевищують його недоліки.