Vba word сохранить как txt
Некоторые гос. структуры формируют отчёты в 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
Далее просто применяем эту функцию ко всем файлам, которые нужно конвертнуть.
Saves the specified document with a new name or format. Some of the arguments for this method correspond to the options in the Save As dialog box (File menu).
expression**.SaveAs**(FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks)
expression Required. An expression that returns a Document object.
FileName Optional Variant. The name for the document. The default is the current folder and file name. If the document has never been saved, the default name is used (for example, Doc1.doc). If a document with the specified file name already exists, the document is overwritten without the user being prompted first.
WdSaveFormat
WdSaveFormat can be one of these WdSaveFormat constants. |
wdFormatDocument Saves as a Microsoft Word document. Default. |
wdFormatDOSText Saves text without formatting. Converts all section breaks, page breaks, and new line characters to paragraph marks. Uses the ANSI character set. Use this format to share documents between Word and DOS-based programs. |
wdFormatDOSTextLineBreaks Saves text without formatting. Converts all line breaks, section breaks, and page breaks to paragraph marks. Use this format when you want to maintain line breaks, for example, when transferring documents to an electronic mail system. |
wdFormatEncodedText Saves as an encoded text file. Use the Encoding argument to specify the code page to use. |
wdFormatFilteredHTML Saves text with HTML tags with minimal cascading style sheet formatting. The resulting document can be viewed in a Web browser. |
wdFormatHTML Saves all text and formatting with HTML tags so that the resulting document can be viewed in a Web browser. |
wdFormatRTF Saves all formatting. Converts formatting to instructions that other programs, including compatible Microsoft programs, can read and interpret. |
wdFormatTemplate Saves as a Word template. |
wdFormatText Saves text without formatting. Converts all section breaks, page breaks, and new line characters to paragraph marks. Uses the ANSI character set. Use this format if the destination program cannot read any of the other available file formats. |
wdFormatTextLineBreaks Saves text without formatting. Converts all line breaks, section breaks, and page breaks to paragraph marks. Use this format when you want to maintain line breaks, for example, when transferring documents to an electronic mail system. |
wdFormatUnicodeText Saves as a Unicode text file. Converts text between common character encoding standards, including Unicode 2.0, Mac OS, Windows, EUC and ISO-8859 series. |
wdFormatWebArchive Saves the text, images, and formatting as a single-file Web page. |
wdFormatXML Saves text and formatting using Extensible Markup Language (XML) and the Word XML schema. |
Other File Types To save in a file type for which there isn't a constant, use the FileConverters object to obtain the SaveFormat property; then set the FileFormat argument to the value of the SaveFormat property. |
LockComments Optional Variant. True to lock the document for comments. The default is False.
Password Optional Variant. A password string for opening the document. (See Remarks below.)
AddToRecentFiles Optional Variant. True to add the document to the list of recently used files on the File menu. The default is True.
WritePassword Optional Variant. A password string for saving changes to the document. (See Remarks below.)
ReadOnlyRecommended Optional Variant. True to have Microsoft Word suggest read-only status whenever the document is opened. The default is False.
EmbedTrueTypeFonts Optional Variant. True to save TrueType fonts with the document. If omitted, the EmbedTrueTypeFonts argument assumes the value of the EmbedTrueTypeFonts property.
SaveNativePictureFormat Optional Variant. If graphics were imported from another platform (for example, Macintosh), True to save only the Windows version of the imported graphics.
SaveFormsData Optional Variant. True to save the data entered by a user in a form as a data record.
SaveAsAOCELetter Optional Variant. If the document has an attached mailer, True to save the document as an AOCE letter (the mailer is saved).
MsoEncoding
MsoEncoding can be one of these MsoEncoding constants. |
msoEncodingArabic |
msoEncodingArabicASMO |
msoEncodingArabicAutoDetect Not used with this method. |
msoEncodingArabicTransparentASMO |
msoEncodingAutoDetect Not used with this method. |
msoEncodingBaltic |
msoEncodingCentralEuropean |
msoEncodingCyrillic |
msoEncodingCyrillicAutoDetect Not used with this method. |
msoEncodingEBCDICArabic |
msoEncodingEBCDICDenmarkNorway |
msoEncodingEBCDICFinlandSweden |
msoEncodingEBCDICFrance |
msoEncodingEBCDICGermany |
msoEncodingEBCDICGreek |
msoEncodingEBCDICGreekModern |
msoEncodingEBCDICHebrew |
msoEncodingEBCDICIcelandic |
msoEncodingEBCDICInternational |
msoEncodingEBCDICItaly |
msoEncodingEBCDICJapaneseKatakanaExtended |
msoEncodingEBCDICJapaneseKatakanaExtendedAndJapanese |
msoEncodingEBCDICJapaneseLatinExtendedAndJapanese |
msoEncodingEBCDICKoreanExtended |
msoEncodingEBCDICKoreanExtendedAndKorean |
msoEncodingEBCDICLatinAmericaSpain |
msoEncodingEBCDICMultilingualROECELatin2 |
msoEncodingEBCDICRussian |
msoEncodingEBCDICSerbianBulgarian |
msoEncodingEBCDICSimplifiedChineseExtendedAndSimplifiedChinese |
msoEncodingEBCDICThai |
msoEncodingEBCDICTurkish |
msoEncodingEBCDICTurkishLatin5 |
msoEncodingEBCDICUnitedKingdom |
msoEncodingEBCDICUSCanada |
msoEncodingEBCDICUSCanadaAndJapanese |
msoEncodingEBCDICUSCanadaAndTraditionalChinese |
msoEncodingEUCChineseSimplifiedChinese |
msoEncodingEUCJapanese |
msoEncodingEUCKorean |
msoEncodingEUCTaiwaneseTraditionalChinese |
msoEncodingEuropa3 |
msoEncodingExtAlphaLowercase |
msoEncodingGreek |
msoEncodingGreekAutoDetect Not used with this method. |
msoEncodingHebrew |
msoEncodingHZGBSimplifiedChinese |
msoEncodingIA5German |
msoEncodingIA5IRV |
msoEncodingIA5Norwegian |
msoEncodingIA5Swedish |
msoEncodingISO2022CNSimplifiedChinese |
msoEncodingISO2022CNTraditionalChinese |
msoEncodingISO2022JPJISX02011989 |
msoEncodingISO2022JPJISX02021984 |
msoEncodingISO2022JPNoHalfwidthKatakana |
msoEncodingISO2022KR |
msoEncodingISO6937NonSpacingAccent |
msoEncodingISO885915Latin9 |
msoEncodingISO88591Latin1 |
msoEncodingISO88592CentralEurope |
msoEncodingISO88593Latin3 |
msoEncodingISO88594Baltic |
msoEncodingISO88595Cyrillic |
msoEncodingISO88596Arabic |
msoEncodingISO88597Greek |
msoEncodingISO88598Hebrew |
msoEncodingISO88599Turkish |
msoEncodingJapaneseAutoDetect Not used with this method. |
msoEncodingJapaneseShiftJIS |
msoEncodingKOI8R |
msoEncodingKOI8U |
msoEncodingKorean |
msoEncodingKoreanAutoDetect Not used with this method. |
msoEncodingKoreanJohab |
msoEncodingMacArabic |
msoEncodingMacCroatia |
msoEncodingMacCyrillic |
msoEncodingMacGreek1 |
msoEncodingMacHebrew |
msoEncodingMacIcelandic |
msoEncodingMacJapanese |
msoEncodingMacKorean |
msoEncodingMacLatin2 |
msoEncodingMacRoman |
msoEncodingMacRomania |
msoEncodingMacSimplifiedChineseGB2312 |
msoEncodingMacTraditionalChineseBig5 |
msoEncodingMacTurkish |
msoEncodingMacUkraine |
msoEncodingOEMArabic |
msoEncodingOEMBaltic |
msoEncodingOEMCanadianFrench |
msoEncodingOEMCyrillic |
msoEncodingOEMCyrillicII |
msoEncodingOEMGreek437G |
msoEncodingOEMHebrew |
msoEncodingOEMIcelandic |
msoEncodingOEMModernGreek |
msoEncodingOEMMultilingualLatinI |
msoEncodingOEMMultilingualLatinII |
msoEncodingOEMNordic |
msoEncodingOEMPortuguese |
msoEncodingOEMTurkish |
msoEncodingOEMUnitedStates |
msoEncodingSimplifiedChineseAutoDetect Not used with this method. |
msoEncodingSimplifiedChineseGBK |
msoEncodingT61 |
msoEncodingTaiwanCNS |
msoEncodingTaiwanEten |
msoEncodingTaiwanIBM5550 |
msoEncodingTaiwanTCA |
msoEncodingTaiwanTeleText |
msoEncodingTaiwanWang |
msoEncodingThai |
msoEncodingTraditionalChineseAutoDetect Not used with this method. |
msoEncodingTraditionalChineseBig5 |
msoEncodingTurkish |
msoEncodingUnicodeBigEndian |
msoEncodingUnicodeLittleEndian |
msoEncodingUSASCII |
msoEncodingUTF7 |
msoEncodingUTF8 |
msoEncodingVietnamese |
msoEncodingWestern |
InsertLineBreaks Optional Variant. If the document is saved as a text file, True to insert line breaks at the end of each line of text.
AllowSubstitutions Optional Variant. If the document is saved as a text file, True allows Word to replace some symbols with text that looks similar. For example, displaying the copyright symbol as (c). The default is False.
WdLineEndingType
WdLineEndingType can be one of these WdLineEndingType constants. |
wdCRLF Default. |
wdCROnly |
wdLFCR Not used with this method. |
wdLFOnly Not used with this method. |
wdLSPS Not used with this method. |
AddBiDiMarks Optional Variant. True adds control characters to the output file to preserve bi-directional layout of the text in the original document.
Remarks
Security Avoid using hard-coded passwords in your applications. If a password is required in a procedure, request the password from the user, store it in a variable, and then use the variable in your code. For recommended best practices on how to do this, see Security Notes for Microsoft Office Solution Developers.
Example
This example saves the active document as Test.rtf in rich-text format (RTF).
This example saves the active document in text-file format with the file extension ".txt".
This example loops through all the installed converters, and if it finds the WordPerfect 6.0 converter, it saves the active document using the converter.
This example illustrates a procedure that saves a document with a password.
Доброго всем!
Такая у меня трудность: Необходимо сохранять документ ворда, созданный макросом.Он создается, для него вызывается диалоговое окно сохранения, решение о сохранении под тем или иным именем принимает пользователь.Все устраивает, кроме: имя по умолчанию в диалоговом окне стандартное (документ1 или что-то там еще. ). Надо предложить свое (чтобы система была в названии, а то, блин, загаживается всякой фигней, чем попало называют файлы). не могу найти такого свойства. Может,кто знает? Не хочу жестко все сохранять. Иногда того не стоит
Сохранить данные из datagridview в word с созданием таблицы в ворде
Привожу код который сохраняет содержимое datagridview в файл, но без создания таблицы в самом файле.
При сохранение файла word (права доступа на сохранение ограничены) появляется пустой файл
Добрый день! Проблема такая: Допустим есть пользователь, у которого ограничены права (может.
Сохранение макета в Word (MXL --> таблица в Word)
Есть такой код: . запрос ТаблицаДанных = Запрос.Выполнить().Выгрузить(); .
Как лучше всего сделать сохранение >100 страниц из word шаблона с заменой ключ. слов в один word файл для посл. печати?
Я вот думаю, как? Точнее не думаю, я уже приступлю к созданию всего этого завтра, но хотел бы.
Artemo,
т. е. надо, чтобы в диалоговом окне "Сохранение документа" в поле "Имя файла" по умолчанию было определённое название?
2 BUSINE2009
В точности так. Именно этого хотелось бы
а код вот этот
wd.Dialogs(wdDialogFileSaveAs).Show
где wd это объект ворд. Документ из экселя делается. Там все данные
Этот макрос надо поместить в меню Файл вместо "Сохранить" и "Сохранить как. " и на Стандартную панель инструментов, вместо кнопки "Сохранить".
Может в твоём случае не надо вызывать Диалоговое окно "Сохранение документа", а надо как-то автоматизировать Сохранение.
Спасибо! Тоже здоровский объект. И документирован. Есть простор для творчества. Коллеги удивятся теперь, всяко. -)
добрый день, Буду очень благодарен если у вас есть какие нибудь мысли.
Вопрос- Можно ли в макрос вставить не константное имя файла? Например копируем шапку файла, и "сохранить как" "вставить"
я не полный ноль, но по 10 бальной шкале я 1.
Могли бы вы пожалуйста на пальцах сказать что куда вставлять?
вот концовка макроса допустм, где копи- я копирую в буфер нужное мне название из самого файла.
П.с. я работаю в ворде
Добавлено через 6 минут
Казанский, Это я вам писал выше)) Только разобрался как ответ писать
ctac1412, так Вы не вручную копируете? Если это будет часть макроса, буфер обмена вообще не надо задействовать
Казанский, Большое спасибо что тратите на меня время. Хоть и тп мне не ясно, потому что я не знаю разнообразия всех методов и мои макросы наверное такие тупые и нагруженые, а спецы делали бы это все в пару строк)) Если не сложно, не подскажете, как указать в макросе путь куда сохранять и что бы не выскакивало окно выбора пути?
Добавлено через 15 минут
Казанский, Кстати, если не сложно ответться, что делают 2-8 строки? Я их удалил, и без них работало.
Добавлено через 9 минут
И есть ли все таки способ сделать имя из буфера? Например я макросом копирую заявление 11/11/16-1 ( далее в прога не читает такое название) у меня копируется номер заявления, вставляется в свободную строку, "/" меняются на "." и дописывается .doc (11.11.16-1.doc) и удаляется из строки( а запись оставалась в буфере). Файл закрывается с сохранением. Потом я нажимал f2 жмакал ctrl+v и все. Нельзя "сохранить как", потому что работа с доком идет из temp папки и он положит файл в другое место. А я начинал работу с скачанным файлом и мне нужно именно ему поменять имя а не создать новый.
То есть я скачиваю ворду, перетаскиваю из мозилы в месанджер и менял имя внутри месенджера
Добавлено через 20 часов 11 минут
Я понял как можно указать папку, куда устанавливать. Но как можно сделать так, что бы не спрашивали подтверждение.
Как сохранить каждый лист в виде отдельного текстового файла из книги?
Если вы хотите сохранить рабочий лист как текстовый файл, вы можете использовать функцию Excel «Сохранить как», чтобы сохранить рабочий лист как текстовый файл. Но если вы хотите сохранить каждый лист книги в виде отдельного текстового файла, шаги Сохранить как должны вас раздражать. Здесь я предлагаю вам несколько интересных приемов, которые помогут вам быстро решить эту скучную работу в Excel.
Сохраните каждый лист книги как отдельный текстовый файл с помощью Kutools for Excel
Сохраните лист как текстовый файл с помощью VBA
Если вам не нравится использовать функцию «Сохранить как» для сохранения листа в виде текстового файла, вы можете использовать код VBA.
1. Активируйте лист, который хотите сохранить как текстовый файл.
2. Нажмите Alt + F11 ключи для отображения Microsoft Visual Basic для приложений окно.
3. Нажмите Вставить > Модули из окна, а затем вставьте ниже код VBA в модуль.
VBA: сохранить лист как текстовый файл.
4. Нажмите Run кнопку для выполнения кода, а затем в Kutools for Excel выберите папку, в которую будет помещен текстовый файл, и укажите имя текстового файла. Смотрите скриншот:
5. Нажмите Сохраните. Теперь активный лист сохраняется как текстовый файл.
Наконечник: с VBA вы можете одновременно сохранить только один лист в виде текстового файла.
Сохраните каждый лист книги как отдельный текстовый файл с помощью Kutools for Excel
После бесплатная установка Kutools for Excel, сделайте следующее:
1. Включите книгу, листы которой вы хотите сохранить как независимые текстовые файлы, а затем щелкните Кутулс Плюс > Workbook > Разделить книгу. Смотрите скриншот:
2. в Разделить книгу выберите листы, которые вы хотите разделить и сохранить как текстовые файлы, по умолчанию все листы выбраны, а затем установите флажок Укажите формат сохраненияИ выберите Текст в Юникоде (*. Txt) из раскрывающегося списка снизу. Смотрите скриншот:
3. Нажмите Трещина, а затем выберите папку для размещения текстовых файлов из Просмотр папки диалог. Смотрите скриншот:
4. Нажмите OK. Теперь каждый лист книги сохраняется как отдельный текстовый файл в выбранной папке.
Работы С Нами Разделить книгу of Kutools for Excel, вы можете разделить книгу и сохранить их как отдельные файлы xls, файлы xlsx, файлы PDF или файлы CSV, нажмите здесь, чтобы узнать больше об этой утилите.
Экспортируйте выделенный лист в виде текстового файла с помощью Kutools for Excel
Работы С Нами Kutools for Excel, вы также можете экспортировать выбранный лист в виде текстового файла, используя его Диапазон экспорта в файл.
После бесплатная установка Kutools for Excel, сделайте следующее:
1. Выберите диапазон или диапазоны, которые вы хотите сохранить как текстовый файл, и нажмите Кутулс Плюс > Импорт/Экспорт > Диапазон экспорта в файл. Смотрите скриншот:
2. Затем в появившемся диалоговом окне отметьте Текст Юникода вариант под Формат файла раздел, затем перейдите к Параметры текста раздел, чтобы выбрать нужный вариант, а затем выберите место для сохранения.
3. Нажмите Ok. Теперь назовите экспортируемый текстовый файл во всплывающем окне. Диапазон экспорта в файл диалоговое окно и щелкните OK кнопку.
Пока выбор был экспортирован в отдельный текстовый файл.
Есть более 120 инструменты в Kutools for Excel, чтобы установить его и получить 60-дневную пробную версию, вы можете найти множество невероятных полезных функций.
Как сохранить текущую или каждую страницу как отдельный документ Word?
Если в вашем документе Word несколько страниц, теперь вам просто нужно сохранить только одну текущую страницу как новый файл Word. Обычно вы можете скопировать и вставить данные текущей страницы в новый файл Word, а затем сохранить его. Но в этой статье я расскажу о том, как сохранить текущую или каждую страницу как отдельные документы из файла Word.
With Kutools for Word's Split feature, you can quickly save a large Word document into multiple separate files based on Heading1, page break, section break and page.
Kutools for Word: with more than 100 handy Word add-ins, free to try with no limitation in 60 days. Click to Download and free trial Now!
Сохранить текущую страницу как новый документ Word с кодом VBA
Следующий код VBA может помочь вам сохранить содержимое текущей страницы в новый файл Word, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.
Код VBA: сохранить текущую страницу как новый документ Word:
3. А затем нажмите F5 Чтобы запустить этот код, в появившемся диалоговом окне введите имя нового файла, см. снимок экрана:
4, Затем нажмите OK и во втором появившемся окне выберите папку для вывода нового файла, см. снимок экрана:
5. Нажмите OK , текущее содержимое страницы было сохранено как новый файл Word, вы можете перейти в папку, чтобы просмотреть результат.
Сохраните каждую страницу как отдельные документы Word с помощью Kutools for Word
Если вы хотите сохранить каждую страницу всего документа в виде отдельных файлов, Kutools for WordАвтора Трещина функция может оказать вам услугу.
После установки Kutools for Word, выполните следующие действия:
1. Нажмите Кутулс Плюс > Трещина, см. снимок экрана:
2. В Разделить документ диалоговое окно:
(1.) Выберите страница из Разделить на раскрывающийся список;
(1.) Щелкните кнопка для выбора папки для вывода новых файлов;
(2.) Затем укажите нужный префикс для новых сохраненных файлов.
3. После завершения настройки нажмите OK кнопку, чтобы начать разделение, а затем все страницы документа Word были сохранены как отдельные файлы в определенной папке, как показано на следующем снимке экрана:
Читайте также: