Как текстовый файл преобразовать в vbs

Обновлено: 02.07.2024

Есть три способа создания пустого текстового файла (иногда называемого как «text stream»).

Первый способ — это использование метода CreateTextFile. В следующем примере показано, как создать текстовый файл, используя этот метод: Пример использования данного метода см. в разделе «3.7. Пример работы с объектом FileSystemObject».

Второй способ — это использование метода OpenTextFile объекта FileSystemObject с набором флагов ForWriting. В следующем примере показано, как создать текстовый файл, используя этот метод: Третий способ — это использование метода OpenAsTextStream с набором флагов ForWriting. В следующем примере показано, как создать текстовый файл, используя этот метод:

Добавление данных в файл

  • Открыть текстовый файл
  • Записать данные
  • Закрыть файл

Для записи данных в текстовый файл используйте методы Write, WriteLine или WriteBlankLines объекта TextStream, в зависимости от задач, описанных в приведённой ниже таблице:

Задача Метод
Запись данных в текстовый файл без символа перехода на новую строку в конце Write
Запись данных в текстовый файл с символом перехода на новую строку в конце WriteLine
Запись одной или более пустых строк в открытый текстовый файл WriteBlankLines

Для закрытия текстового файла используйте метод Close объекта TextStream. Закрыть файл можно также методом Close объекта FileSystemObject. Пример использования данных методов см. в разделе «3.7. Пример работы с объектом FileSystemObject».

ПРИМЕЧАНИЕ
Символ новой строки содержит символ или символы (зависит от операционной системы) для перевода курсора в начало новой строки (возврат каретки/перевод строки). Следует учитывать, что некоторые строки уже могут иметь в конце эти непечатаемые символы.

В следующем примере показано, как выполняется запись данных в открытый файл всеми тремя методами, затем файл закрывается:

Чтение файлов

Для чтения данных из файла используйте методы Read, ReadLine или ReadAll объекта TextStream. Эти методы и задачи, решаемые с их помощью, описаны в приведённой ниже таблице:

Задача Метод
Чтение указанного количества символов из файла Read
Чтение полной строки из файла (до символа конца строки, но не включая его) ReadLine
Чтение всего содержимого файла ReadAll

Пример использования данных методов см. в разделе «3.7. Пример работы с объектом FileSystemObject».

Если вы используете методы Read или ReadLine и хотите пропустить определённую часть данных, то используйте методы Scip или ScipLine. Полученный в результате работы этих методов текст может быть сохранён в строку, которую можно отобразить на экране в элементе управления, передать в качестве параметра в строковую функцию (например, в Left, Right или Mid), соединить с другой строкой и т.п.

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

Перемещение, копирование и удаление файлов

Объектная модель FSO имеет для каждой из операций перемещения, копирования или удаления файлов по два метода. Эти методы и задачи, решаемые с их помощью, описаны в приведённой ниже таблице:

Задача Метод
Перемещение файла File.Move или FileSystemObject.MoveFile
Копирование файла File.Copy или FileSystemObject.CopyFile
Удаление файла File.Delete или FileSystemObject.DeleteFile

Пример использования данных методов см. в разделе «3.7. Пример работы с объектом FileSystemObject».

В следующем примере создаётся текстовый файл в корневом каталоге диска С, записывается в него некоторая информация. Затем файл перемещается в директорию с именем \tmp, копируется в директорию \temp, а затем удаляются копии из обеих директорий.

Для проверки работы этого примера создайте в корневом каталоге диска С директории tmp и temp.

Во время работы иногда возникает необходимость изменить расширение файла. Это может потребоваться для файлов, с которыми можно работать в разных программах. Например, расширение текстового файла можно изменить с TXT на CFG, INI, BAT, REG, HTML, PHP, XML, VBS, CSV или CMD. Это позволит продолжить работу в другой программе.

Если вы столкнулись с подобной задачей, то этот материал должен вам помочь. Здесь вы узнаете, как изменить расширение файла в операционной системе Windows 10.

Что такое расширение файла в Windows 10

Расширение файла (или суфикс) – это один или несколько символов в имени файла, которые отделены с помощью точки. Например, если файла называется « filename. INI », то расширением будет являться « INI », так как данная часть названия расположена после точки.

В операционной системе Windows 10 расширение файла используется для определения программы, которую нужно использовать для открытия этого файла. Например, если документ называется « filename.TXT », то он будет открываться с помощью текстового редактора, а если « filename.BAT », то с помощью интерпретатора командной строки. Связь между суфиксом и программой задается в реестре Windows и при необходимости ее можно изменить.

Изменение расширения файла позволяет изменить программу, с помощью которой он будет открываться. Например, вы можете создать текстовый документ « filename. TXT » в программе « Блокнот » и потом переименовать его в « filename. REG ». После такого переименования созданный документ начнет открываться уже не в « Блокноте » в редакторе реестра Windows 10.

Нужно отметить, что изменение расширения никак не изменяет тип файла или его содержимое, изменяется только имя. Изменение с « AVI » в « MP3 » не превратит видео в аудио. Для решения таких задач нужно использовать конвертацию с помощью специального софта.

Как поменять расширение файла в Windows 10

В Windows 10, как и в остальных версиях Windows, для того чтобы изменить расширение файла нужно сначала включить его отображение в Проводнике. Для этого нужно открыть любую папку и перейти на вкладку « Вид ».

переход на вкладку Вид

После чего нужно нажать на кнопку « Параметры », которая находится на вкладке « Вид » в правой части окна.

кнопка Параметры

Если с этим возникают какие-то проблемы, то можно сделать по-другому. Нажмите комбинацию клавиш Windows-R, введите команду « control.exe folders » и нажмите Enter.

выполнение команды control.exe folders

В результате перед вами появится окно « Параметры папок ». В данном окне можно изменить многие настройки, которые касаются отображения файлов и папок в проводнике Windows 10. Для того чтобы включить отображение расширений файлов перейдите на вкладку « Вид ».

открытие вкладки Вид

На этой вкладке будет доступен список параметров. Пролистайте данный список в самый конец, найдите там параметр « Скрывать расширения » и отключите его. Для этого достаточно снять отметку и сохранить изменения с помощью кнопки « ОК ».

отключение скрытого расширения файлов

После этого рядом с названием файла всегда будет отображаться и его расширение. Например, на картинке внизу показаны файлы DOCX и TXT .

расширение файлов в Windows 10

Теперь можно изменить расширение файла. Для этого кликните по нему правой кнопкой мышки и выберите вариант « Переименовать ».

переименование файла

Теперь, когда скрытие окончаний отключено, вы сможете не только переименовать файл, но и изменить его расширение. Например, вместо TXT можно указать CFG .

изменение расширения файла

Еще раз отметим, что изменение расширения не влияет на содержимое, оно всего лишь указывает операционной системе Windows 10 какой программой открывать данный документ.

Как изменить расширение для большого количества файлов

Если у вас много файлов, расширение которых нужно изменить, то вы можете воспользоваться командной строкой и тем самым значительно ускорить процесс. Для этого запустите командную строку и перейдите в папку, где находятся нужные вам файлы (для перехода между папками используйте команду cd ).

массовое изменение расширения файлов

Находясь в нужной папке выполните команду « ren *.txt *.csv ». Данная команда изменит расширение с TXT на CSV для всех файлов, которые находятся в этой папке.


Необходимо преобразовать его в формат xls. Просомтрел всю документацию по VBScript, но ничего толкового не нашел.
Также половину интернета перерыл Причем необходимо, сделать так, чтобы строки в каждом блоке стали столбцами, возможно ли такое?
Пожалуйста помогите, кто чем может. Буду очень благодарен.

2 Ответ от tankist 2011-04-28 12:30:42 (изменено: tankist, 2011-04-28 12:32:11)

Доброго дня.
Имхо, проще вставить текст в Excel, предварительно его обработав в блокноте (ну там, удалить лишние пробелы, сделать пустые строки - пустыми и т.д.) и обработать текст вручную - формулами или макросом. Макрос однозначно будет проще, чем писать скрипт по "подаче" этих данных в екслель, плюс потом пакеткая обработка.
Элементарно это сделать с помощью формул. Допустим, указанные данные начинаются в ячейке A2, тогда в ячейку B2 вставляется формула:

Растягиваем на 3 столбца вправо, потом вниз, и вуаля - данные из столбца в стоках. Можно еще и проверку на 0 сделать, если количество непрерывных строк бывает разным (в указанном примере 4 строки - пробел, 4 строки - пробел):

Останется только удалить "лишние" строки, но это делается без скриптов - прочтите справку по кнопке "Выделение группы ячеек. "

// Если у носорога плохое зрение, то при его весе - это не его проблема.

3 Ответ от Pitkin 2011-04-28 13:03:59

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

4 Ответ от Dmitrii 2011-04-28 13:30:02 (изменено: Dmitrii, 2011-04-28 13:34:19)

. скрипт, который будет брать данные строки из текстового файла, затем переносить их в файл xls формата <. > Все данные задачи уже решены, кроме преобразования текстового файла в файл Excel.

1. Непонятно, зачем вообще какие-то преобразования, когда уже есть сценарий, который "умеет" обрабатывать текстовый файл и формировать рабочую книгу.
2. Непонятно, зачем Вам именно формат XLS. Если только для того, чтобы файл с данными был автоматически связан с приложением Excel и распознавался им как "свой", то достаточно задать исходному текстовому файлу расширение CSV.

5 Ответ от Pitkin 2011-04-28 13:35:42 (изменено: Pitkin, 2011-04-28 13:38:29)

Да, можно сделать и так. Извините в первом посте забыл указать, что преобразование нужно с целью изменения строк в столбцы, то есть
Есть текстовый документ txt, в котором находятся данные в таком виде:
------------
Строка 1
Строка 2
Строка 3
Строка 1
Строка 2
Строка 3
Строка 1
Строка 2
Строка 3
------------
Как данный документ импортировать в excel чтобы данные приняли вид таблицы
из трех столбцов
Строка1 Строка2 Строка3
Строка1 Строка2 Строка3
. . .
Строка1 Строка2 Строка3

Хотя, в excel можно не импортировать, просто, чтобы в самом файле csv строки автоматически становились столбцами, подскажите пожалуйста если кто знает.

Попробую пока с формулами в самом excele поколдовать.

6 Ответ от Dmitrii 2011-04-28 13:42:44

. чтобы в самом файле csv строки автоматически становились столбцами.

Приведите содержимое текстового файла к виду
Строка 1;Строка 2;Строка 3
Строка 1;Строка 2;Строка 3
Строка 1;Строка 2;Строка 3

7 Ответ от Pitkin 2011-04-28 13:48:18 (изменено: Pitkin, 2011-04-28 13:59:20)

Эх, если бы я знал как. Если честно сказать, то это мой второй скрипт в жизни
Я вчера целый день писал код как из 300 текстовых файлов собрать все данные в один, вроде получилось
Для меня как новичка это подвиг


Правда не без помощи документации и интернета

8 Ответ от BeS Yara 2011-04-28 14:09:06

  • BeS Yara
  • Разработчик
  • Неактивен

Преобразовать в csv достаточно просто(при условии что формат файла именно такой как приведён в первом посте):

Это "скелет" - без проверок наличия файлов, папок, доступности файлов на запись.

Если требуется именно эксель, то вместо записи в текстовой файл обрабатываем записи поэлементно. Например так:


Вместо вывода в консоль, пишем в ячейки(i, j тут как раз пригодятся ) используя экселевский объект.


P.S. "On Error Resume Next" есть, а где "On Error GoTo 0"? Ошибки нужно обрабатывать а не игнорировать

9 Ответ от Pitkin 2011-04-28 14:24:19 (изменено: Pitkin, 2011-04-28 14:30:03)

Спасибо, огромное, я тут поколдовал немного, и решил этот вопрос проще, в строке с моим кодом где указывается результирующий файл

Set objFile = objFSO.CreateTextFile(strFolderPath & "\AllTextFiles.txt")


Просто поменял расширение, txt на xls и о чудо, формирует xls файл.
Сейчас попробую поковырять ваш код

Я так понял, что вторая часть кода, это как раз то, что нужно для преобразования строк в столбцы?
Не могли бы вы объяснить как это работает, а то не могу понять куда этот кусок вставлять в мой код

10 Ответ от tankist 2011-04-28 14:26:27

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

Мне кажется, можно немного перефразировать задачу - создать excel файл c актуальными данными из текстового источника, требующий дополнительных операций преобразований. Есть два пути решения:
1. (Ваш) Создать скрипт, который будет выполняться по таймингу в определенное время и будет выполнять операции: (а) преобразовать данные; (б) создать xls файл; (в) выкладывать результат на определенный ресурс.
2. Создать файл c эксель импортом данных (теперь понятно, что без vba - никуда), который будет автоматически брать последние данные по запросу пользователя (например - "при открытии").

// Если у носорога плохое зрение, то при его весе - это не его проблема.

11 Ответ от tankist 2011-04-28 14:31:01

Пока неспеша "строчил" ответ, уже написали рабочий пример скрипта. BeS Yara, спасибо, мне тоже пригодится.

// Если у носорога плохое зрение, то при его весе - это не его проблема.

12 Ответ от BeS Yara 2011-04-28 14:53:17

  • BeS Yara
  • Разработчик
  • Неактивен

Просто поменял расширение, txt на xls и о чудо, формирует xls файл.


Это была шутка?
Если нет, то Вы ставите меня в тупик(состояние более известное как "разрыв шаблона").

По поводу второго куска кода, это была часть замены. Вот что подразумевалось(вчерне):

WSH: преобразуем макрос VBA в скрипт VBScrip, а также поиск по форуму на тему "Excel.Application" даст достаточно много примеров работы с Excel.

13 Ответ от Pitkin 2011-04-28 15:12:38 (изменено: Pitkin, 2011-04-28 15:29:51)

Со сменой расширения я тоже был крайне удивлен, но это действительно работает, можете опробовать
Кажется я понял, как работает ваш код, только для того, чтобы он работал нужно, чтобы присутствовал пустой файл Книга1.xls
А если будут поступать новые данные, то они будут дополняться, а не затираться, это очень удобно, спасибо огромное

P.S. С меня 83103 литра пива

14 Ответ от BeS Yara 2011-04-28 15:38:16 (изменено: BeS Yara, 2011-04-28 15:39:17)

  • BeS Yara
  • Разработчик
  • Неактивен

CreateTextFile создаёт текстовый файл. XLS - бинарный файл.
То что эксель правильно открыл переименованный текстовой файл не делает тот файл экселевским. Просто удачно сработал конвертер(excel умеет принимать текстовые форматы, хотя не всегда правильно). Переименованный csv(полученный из скрипта) открывается не совсем верно - по строке в ячейку.

Более того - если далее файл будет обрабатываться автоматически, возможны проблемы. Мне как-то подсунули таблицу сохранённую в html-виде, но с расширением XLS - я долго не мог понять почему эксель файл открывает, а скрипт нет. Пока по F3 его не посмотрел. Убил бы!

Далее:
1. наличие файла Книга1.xls не обязательно
2. он не дописывается, а перезаписывается

Скрипт открывает невидимое окно Excel, записывает туда данные, сохраняет в указанный в скрипте файл и закрывает окно Excel. Если нужно дописывать данные, то необходимо открывать этот файл, находить конец данных, и записывать дальше новые. Мой вариант этого не делает.

15 Ответ от Pitkin 2011-04-28 22:52:53

Всем огромное спасибо, за помощь и за ссылки выложенные здесь. Правда всё еще не осилил Но как говорится, учение - свет, неучение - тень. Теперь буду пытаться полностью автоматизировать процесс, чтобы данные не перезаписывались, а пополнялись сами, ну чтобы на работу ходить только в день зарплаты

P.S. BeS Yara Все равно наличие файла Книга1.xls требует, не могу понять почему, но буду разбираться, все впереди.


Еще раз всем спасибо, УДАЧИ .

16 Ответ от Slav 2011-04-29 09:34:09

.
Просто поменял расширение, txt на xls и о чудо, формирует xls файл.
.

Еще раз убедился - темы "новичков" таят много интересного.
Мне бы сделать такое даже в голову не пришло - но ведь это работает!

Может пригодиться - спасибо, Pitkin.

17 Ответ от BeS Yara 2011-04-29 12:31:19

  • BeS Yara
  • Разработчик
  • Неактивен

Pitkin, есть файл Книга1.xls - он будет перезаписан, Нет файла Книга1.xls - он будет создан. Можете пояснить что значит "Все равно наличие файла Книга1.xls требует" - в чём это проявляется?

Slav, если в первом моём примере скрипта(где вывод идёт в текстовый файл) поменять расширение на xls, то на выходе будет текстовый файл(" файл1 "):

Экселевский файл с этими-же данными будет выглядеть примерно так(кусок, все 5к приводить не буду):

РПаЎ±б >  юя       юяяя яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя     юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяR o o t E n t r y   яяяяяяяя  А F а
ECМ  W o r k b o o k   яяяяяяяяяяяя

Если открыть экселем текстовый файл " файл1 ", то результат будет отнюдь не тот что ожидался - с данными будет только первая колонка, в каждой ячейки которой помещена строка. Мне кажется или это далеко от задачи описанной в первом посте?

Не говоря уже о том что всё зависит от работы(и, кстати, наличия) конвертера текстовых файлов в конкретной версии офиса. Не говоря уже о том, что ОпенОфис при открытии такого "экселевского" файла честно откроет окно импорта из текстового файла(впрочем разделители он распознал вполне корректно).

Я считаю что подобный подход в корне не верен - расширение файла должно соответствовать внутреннему формату. Одну из причин я уже писал. Предположим Ваша организация передавала смежникам экселевские отчёты, которые они обрабатывали автоматически. Теперь Вы решили процесс автоматизировать и скриптом генерируете "экселевские"(а на самом деле текстовые) отчёты. Так вот, скрипт ориентированный на работу с настоящим форматом XLS псевдо экселевские файлы не поймёт(я с этим уже сталкивался). Для начала, пройдёт некоторое время прежде чем обнаружится что данные не получаются. Потом одной из сторон прийдётся переписывать свои скрипты. Кто станет крайнем в потере оперативности из-за смены формата данных?


Если уж нет желания использовать Excell.Application(или его нет - например на сервере не установлен офис), то можно установить MSDE, и все данные сливать туда. А уже с MSDE получить экселевские отчёты элементарно - DTS Вам в помощь

18 Ответ от Slav 2011-04-29 13:34:44

.
Slav, если в первом моём примере скрипта(где вывод идёт в текстовый файл) поменять расширение на xls, то на выходе будет текстовый файл(" файл1 "):

.
Если открыть экселем текстовый файл " файл1 ", то результат будет отнюдь не тот что ожидался - с данными будет только первая колонка, в каждой ячейки которой помещена строка. Мне кажется или это далеко от задачи описанной в первом посте?
.

предлагаю еще раз внимательно посмотреть на постановку задачи.
В ней прямо сказано - каждое значение находится в одной строке.

Это Вы предлагаете преобразовать входные данные в формат csv - как раз для решения проблемы "одной строки".
А затем применить трюк с заменой на расширение xls.
Не нужно этого делать - так и читайте с расширением csv.

Я не имею ничего против Excell.Application.
Но давайте оценим разные решения с точки зрения лаконичности - ведь все гениальное просто.

Имея txt-файл с конкретной структурой с одной стороны предлагается сделать еще как минимум 2 файла: скрипт преобразования в csv и на выходе сам csv.
Второе решение - скрипт с Excell.Application, который читает данные - пишет в xls-формате.

А третье решение - назовем его "трюковое" - требует всего-то сменить расширение на xls.
И еще - давайте уж рассмотрим его до конца - небольшую макру Auto_Open в самом Excel, которая переставит значения из исходного формата в строку при открытии файла.
И которая может быть создана пользователем начального уровня в самом Excel путем "записать макро".

Я не хочу давать оценку - какое решение лучше.
Пусть каждый выберет то, которое лично ему больше нравится.
Или больше подходит в данной конкретной ситуации.

Полюбому - лучше всегда знать как можно больше вариантов, в том числе и "трюковых".
Как Вы считаете?


Удачи!

19 Ответ от BeS Yara 2011-04-29 14:01:06

  • BeS Yara
  • Разработчик
  • Неактивен

предлагаю еще раз внимательно посмотреть на постановку задачи.
В ней прямо сказано - каждое значение находится в одной строке.


Прочитал.

Необходимо преобразовать его в формат xls.
<. >
Причем необходимо, сделать так, чтобы строки в каждом блоке стали столбцами, возможно ли такое?


Так что данные нужно всё-таки транспонировать, причём разделителем результирующих строк служит пустая строка. И "заказанный" формат - XLS, а не текстовый с разделителем


Сформировать CSV предложил Dmitrii, я лишь предложил реализацию(благо код там копеешный, а у меня было свободное время). Потом, поняв уровень спрашивающего уже доделал вариант с экселем(Тут конечно код не идиален, делался полунаучным методом. Но ведь выполняет поставленную задачу )

Но давайте оценим разные решения с точки зрения лаконичности - ведь все гениальное просто.

Лаконичнее и правильнее было бы обойтись без промежуточных файлов, а формировать отчёт сразу. Если очёты требуется дополнять(возникло такое подозрение по высказываниям Pitkin-а), то я бы всё-таки перешел к хранению в БД. Там гораздо проще манипулировать данными, да и встроенные механизмы получения отчётов в разных форматах тоже присутствуют(про экспресс не уверен, но в MSDE - 100%).

Полюбому - лучше всегда знать как можно больше вариантов, в том числе и "трюковых".
Как Вы считаете?


В целом согласен(про пользу разнообразных решений). Что касается "трюков", то тут я своё отношение написал. Их полезно знать, их иногда можно использовать. Но нужно также знать из-за чего эти трюки работают - чтобы понять почему вдруг трюк перестал работать на другом компьютере Думаю что многие тут, на форуме, представляют уровень типового пользователя. Так что чем меньше будет в конечном результате зависеть от опыта работы "оператора"(того к кому попадёт трюковый отчёт), тем надёжнее решение.

Некоторые гос. структуры формируют отчёты в doc файлах. Где-то это делается руками, а где-то автоматически. Представим, что вам поручено обработать тонну таких документов. Это может быть необходимо для вычленения какой-то конкретной информации или просто проверки содержимого. Нам нужно вынуть только неформатированный текст без графиков и картинок. К примеру, такие данные проще засовывать в нейронную сеть для дальнейшего анализа.

Вот некоторые варианты для самого обычного человека:

  • Ручками перебрать все файлы по одному. Уже после десятого документа к вам придёт мысль о том, что вы делаете что-то не так.
  • Попробовать найти в интернете специальную библиотеку (расширение) для работы с doc файлами на языке программирования, которым вы владеете. Потратить часок другой на понимание, как работать с этой библиотекой. Также вам ещё предстоит столкнуться с тем, что принципы работы с doc и docx слегка отличаются.
  • Попытаться автоматизированно пересохранить все документы в другой формат, с которым будет удобнее работать.

И на помощь к нам спешит vbs скрипт. vbs скрипт можно вызвать из командной строки, что можно сделать в любом языке программирования.

Создадим файл converter.vbs


В первой строке мы указываем, в какой формат будем конвертировать: 2 — в txt, 17 — в pdf.
Все форматы можно посмотреть тут. Во второй строке мы открываем непосредственно word. После открытия можно добавить следующую строку:


Это приведёт к тому, что мы будем видеть процесс открытия Word. Это может быть полезно в том случае, если в какой-то момент произойдёт ошибка, word не закроется сам, и без этой строчки процесс можно будет убить только через диспетчер задач, а так мы просто сможем нажать на крестик.

В командной строке скрипт будет запускаться следующим образом:


Wscript.Arguments.Item(0) — это полный_путь_к_файлу\имя_файла.docx
WScript.Arguments.Item(1) — полный_путь_куда_сохранить\имя_файла_без_расширения
Соответственно, в третьей строке нашего скрипта мы открываем файл, и на следующей строке сохраняем в указанный формат. И в завершении закрываем word.

Есть ещё одна маленькая нужная хитрость. Иногда из-за разницы в версиях word или по другим причинам, word может ругнуться, сказав, что файл повреждён. При ручном открытии файла мы увидим предупреждение «повреждена таблица, продолжить открытие файла?». И нужно лишь нажать на «Да», но скрипт уже на этом моменте прекратит свою работу.

В vbs очень корявая конструкция «try catch». Обойти данную проблему можно, добавив всего две строчки. Итого полноценный стабильный скрипт выглядит следующим образом:


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

И на всякий пожарный, пример того, как может выглядеть функция на Python


Далее просто применяем эту функцию ко всем файлам, которые нужно конвертнуть.

Читайте также: