Как из vba открыть блокнот
Перейти к содержимому

Как из vba открыть блокнот

Как прочитать текстовый файл в VBA

В нынешнее время использование текстовых файлов для обмена данными или хранения данных становится редкостью, но тем не менее, все еще встречается. Приведу два варианта чтения текстового файла из VBA. Каждый способ может быть полезен в своей ситуации.

Способ 1. Открытие (чтение) текстового файла целиком

Можно открыть текстовый файл без учета каких-либо разделителей, сплошным текстом:

Set objExcel = New Excel.Application Set wb = objExcel.Workbooks.Open("имя_файла")

либо, если используются разделители колонок, можно их задействовать:

Открытие текстового файла с разделителем Tab:

Set objExcel = New Excel.Application Set wb = objExcel.Workbooks wb.OpenText Filename:="имя_файла", DataType:=xlDelimited, Tab:=True

Открытие текстового файла с разделителем ; (точка с запятой):

Set objExcel = New Excel.Application Set wb = objExcel.Workbooks wb.OpenText Filename:="имя_файла", DataType:=xlDelimited, Other:=True, OtherChar:=";"

В параметрах можно так же добавить Origin:=xlMSDOS , если текстовый файл в DOS-кодировке.

После открытия файла, его можно пройти как обычные ячейки Excel-кого листа.

Способ 2. Чтение текстового файла построчно

Здесь используется классический вариант чтения как в большинстве языков программирования: открытие файла, цикл чтения построчно, закрытие файла.

f = FreeFile Open "имя_файла" For Input As #f Do While Not EOF(f) Line Input #f, s ' что-нибудь делаем с полученной строкой s Loop Close f

В первой строке определяем число, представляющее следующий номер файла, доступный для использования оператором Open. Затем открываем файл, после чего делаем цикл в котором происходит построчное чтение.

Метод CreateTextFile

Создает указанное имя файла и возвращает объект TextStream , который можно использовать для чтения или записи в файл.

Синтаксис

object. CreateTextFile (имя файла, [ перезапись, [ юникод ]])

Синтаксис метода CreateTextFile состоит из следующих частей:

Part Описание
object Обязательно. Всегда имя объекта FileSystemObject или Folder .
Имени файла Обязательно. Строковое выражение, определяющее файл, который требуется создать.
Перезаписать Необязательный параметр. Значение Boolean, указывающее, требуется ли перезаписывать существующий файл. Имеет значение True, если файл можно перезаписать, и False в противном случае. Если этот параметр опущен, существующие файлы могут быть перезаписаны.
Юникода Необязательный параметр. Значение Boolean, указывающее, будет ли файл создан в формате Юникод или ASCII. Значение True, если файл будет создан в формате Юникод, значение False, если требуется создать ASCII-файл. Если этот элемент опущен, создается ASCII-файл.

Замечания

В следующем коде показано, как использовать метод CreateTextFile для создания и открытия текстового файла. Если аргумент overwrite имеет значение False или не задан, то значение атрибута filename, указывающее на существующий файл, приведет к возникновению ошибки.

Sub CreateAfile Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("c:\testfile.txt", True) a.WriteLine("This is a test.") a.Close End Sub 

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Обратная связь

Были ли сведения на этой странице полезными?

Как из vba открыть блокнот

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Функции для работы с текстовыми файлами

Данные функции предназначены для работы с текстовыми файлами из VBA Excel.

Используя эти функции, вы при помощи одной строки кода сможете записать текст из переменной в файл, или наоборот, загрузить содержимое текстового файла в переменную.
Подразумевается, что текстовые файлы имеют формат ANSI (он же ASCII, он же windows-1251)

ВНИМАНИЕ: См. также функции чтения и сохранения текста в файл в заданной кодировке

Чтение текстового файла в переменную:

Function ReadTXTfile(ByVal filename As String) As String Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.OpenTextFile(filename, 1, True): ReadTXTfile = ts.ReadAll: ts.Close Set ts = Nothing: Set fso = Nothing End Function

Запись в текстовый файл из переменной:

Function SaveTXTfile(ByVal filename As String, ByVal txt As String) As Boolean On Error Resume Next: Err.Clear Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.CreateTextFile(filename, True) ts.Write txt: ts.Close SaveTXTfile = Err = 0 Set ts = Nothing: Set fso = Nothing End Function

Добавление в текстовый файл из переменной:

Function AddIntoTXTfile(ByVal filename As String, ByVal txt As String) As Boolean On Error Resume Next: Err.Clear Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.OpenTextFile(filename, 8, True): ts.Write txt: ts.Close Set ts = Nothing: Set fso = Nothing AddIntoTXTfile = Err = 0 End Function
  • 109469 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *