Задать имя файла ворд программно
Репутация: нет
Всего: нет
Проблема таков:
Пользователь в базе генерит отчет. Отчет автоматом формируется в Ворде. Пользователь может сохранить отчет, а может просто распечатать и закрыть Ворд, т.е. заранее неизвестно что с отчетом сделает пользователь.
Но если он его сохраняет, нужно чтобы имя файла которое предлагает Ворд, ну типа "Документ1", было определено из базы.
Т.е. как самому присвоить имя файла которое Водр выдаст как предложение для сохранения файла?
Что-то ни как не врублюсь.
Репутация: 15
Всего: 108
Репутация: нет
Всего: нет
Цитата(Albinos_x @ 30.4.2006, 21:23) |
это свойство только для чтения. поэтому можно или предварительно сохранять или открывать шаблон. |
Да, хотел сделать таким образом, чтобы шаблон отчета копировался с нужным именем, потом новый шаблон открывается по закрытии удаляется.
Но Ворд все равно предлагает в качестве имени только "Документ1".
А предварительно сохранять, тоже проблема. В основном пользователи просто печатают, если все сохранять, то будет много лишних файлов.
Репутация: 15
Всего: 108
странно.. т.к. если открываешь файл, то при сохранение ворд предлагает старое имя. А если не открываешь, то зачастую по первому слову(словосочетанию). возможно ты что-то не правильно делаешь.
сохранять всё не обязательно. можно сохранять в один и тот же файл. или после использования удалять.
Репутация: 15
Всего: 108
Код |
. copyfiles(ExtractFilePath(Application.ExeName)+'OLE_dat\отчёт.xls',ExtractFilePath(Application.ExeName)+'\отчёт.xls'); Excel:=CreateOleObject('Excel.Application'); Excel.WorkBooks.Open(ExtractFilePath(Application.ExeName)+'\отчёт.xls'); WB:=Excel.WorkBooks[1].WorkSheets[1]; |
что мы в неём видим. то что человек имеет что-то наподобии шаблона, которые перед использованием копирует в другую папку, далее открывает его, делает видимым эксель, а потом берёт и добавляет новую книгу и работает с ней. возникает вопрос. а зачем тогда шаблон?
посмотри, может у тебя подобная ситуация.
Репутация: нет
Всего: нет
У меня шаблоны используются именно как шаблоны.
В определенных местах расставлены закладки, и в эти закладки вставляются данные.
Т.е. я открываю не сам файл, а файл на основе шаблона, Ворд соответственно предлагает имя "Документ1".
Почему не предлагает имя по первым сиволам, не знаю, может потому что структура шаблона не простая, ну там таблички всякие, хедеры.
Пробовал в свойствах шаблона название документа менять - тоже безрезультатно.
так подключаюсь к ворду.
Репутация: 15
Всего: 108
если я правильно понял, то dmData - у тебя типа запись?
дело в том, что шаблон, в понимании самого ворда это не документ, поэтому он не инициализирует начальное имя. попробуй открывать его через:
Код |
. WordApplication1.Documents.OpenOld(TemplateName,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam); . |
Добавлено @ 12:04
т.е. так:
Репутация: нет
Всего: нет
Методы Open и OpenOld открывают сам шаблон в Ворде (.dot). Надо же экземпляр основанный на шалоне (.doc).
Добавлено @ 13:45
Все, получилось.
Еще раз попробовал со свойствами файла поработать.
Там есть один момент, который меня и ввел в заблуждение с самого начала:
Открываем файл на основе нашего шаблона, в заголовке Ворда - "Документ1"
Меняем в свойствах название. Результат в заголовке по прежнему "Документ1", но если попытаться сохранить файл, то Ворд предлагает то имя что было в свойствах. Т.е. пользователь просто нажимает сохранить и принимает имя "по умолчанию".
Но, пока файл не сохранен, в заголовке Ворда так и будет "Документ1", что собственно меня и смущало. Я и не пробовал сохранять файл. Вроде если в заголовке, то и по дефолту такое же будет.
Ну все, всем спасибо!
Репутация: 15
Всего: 108
Цитата(FFire @ 1.5.2006, 13:38 ) |
Методы Open и OpenOld открывают сам шаблон в Ворде (.dot). Надо же экземпляр основанный на шалоне (.doc). |
Цитата(FFire @ 1.5.2006, 13:38 ) |
Открываем файл на основе нашего шаблона, в заголовке Ворда - "Документ1" Меняем в свойствах название. Результат в заголовке по прежнему "Документ1", но если попытаться сохранить файл, то Ворд предлагает то имя что было в свойствах. Т.е. пользователь просто нажимает сохранить и принимает имя "по умолчанию". Но, пока файл не сохранен, в заголовке Ворда так и будет "Документ1", что собственно меня и смущало. Я и не пробовал сохранять файл. Вроде если в заголовке, то и по дефолту такое же будет. |
свойство только для чтения поэтому "Документ1" в заголовке не изменяется. и не факт что ваш вариант будет всегда срабатывать и не будет вызывать исключения.
1. Публиковать ссылки на вскрытые компоненты
2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
[ Время генерации скрипта: 0.1405 ] [ Использовано запросов: 21 ] [ GZIP включён ]
При нажатии "Сохранить" в полученном документе в качестве названия по умолчанию подставляется то, что написано в свойствах документа в поле "Название", а хотелось бы задать свое. Задаю программно это свойство:
Название меняется, но при нажатии "Сохранить" опять показано старое значение, а изменяется оно на новое только если открыть свойство документа из меню "Файл" и там нажать ОК.
Я так понимаю, ворду нужна команда для перезагрузки значений свойств. Есть такая?
Или какие еще могут быть варианты для задания своего названия при открытии диалога сохранения?
Можно ли таблице задать уникальный ID, или что-то в этом роде, который не будет потерян при сохранении документа?
Например, в javascript можно любому тегу установить ID. В VBA тоже можно, но он действителен до.
При сохранении документа появляется еще один непонятный файл
у меня при сохранение файла в ворде помима етого выходит еще какаето хрень типа файл расширения.
Зависает Word 2007 - 2010 (Windows 8) при сохранении редактированного документа
Доброго времени суток. Помогите с решением вот такой проблемы. На работе приобрели моноблок с.
Как отключить область свойств документа в Word, Excel 2010?
При каждом открытии документа в Word, Excel 2010 выпадает окно области свойств документа. Всякий.
Romas654, в ходе выполнения вашего кода создаётся новый документ Word и появляется диалоговое окно "Сохранение документа" для сохранения созданного документа Word.
Что вы делаете в этом диалоговом окне?
Стандартный вордовский диалог сохранения.
Вместо "Кредитный договор" нужно сделать более подробное название
Romas654, чтобы свойство Название появилось в диалоговом окне Сохранение документа в поле Имя файла, нужно 2 раза вызвать диалоговое окно Сохранение документа.
Это не решение вашей проблемы, а просто наблюдение.
Статья представляет собой еще один велосипед на тему формирования документов на основе шаблонов через СОМ-Объект. Как и все другие велосипеды, этот написан потому, что другие велосипеды - плохие. В действительности, если погуглить, мы получим огромное количество ссылок на советы в стиле "сделай так и будет тебе счастье". Но почему "так", зачем "так", какие есть альтернативы - авторы советов не раскрывают. Хуже того, половина найденных таким способом рецептов окажутся откровенно вредными. Судя по тому, как вредные рецепты копируются из совета в совет, большинство разработчиков, из тех, что переписываются на форумах, просто воспроизводят то, что когда-то нагуглили сами. Ну да, работает - не трогай :-)
Цель статьи - собрать в одном месте необходимый и достаточный набор рецептов по заполнению документов Ворд на основании шаблонов с помощью СОМ-Объекта
Оглавление:
Зачем и почему нужны файлы Ворд?
Немного философии. В действительности, зачем нужно формировать из информационной базы текстовые файлы, и почему обязательно в формате Ворд?
Потому, что пользователь для работы с текстом использует текстовый процессор. Строго говоря, кроме Ворда всегда существовали альтернативные программы, не уступающие по функционалу. Сейчас 2021 год и пользователи давно привыкли к таким вещам как жесткий пробел, запрет висящих строк, абзац, начинающийся с новой страницы, межстрочный интервал, колонтитулы и абзацные отступы. Довольно часто можно столкнуться с заявлением "наша разработка может формировать документы в формате Ворд". При дальнейшем рассмотрении оказывается, что "шаблон" хранится непосредственно в информационной базе либо в виде текста, либо в виде форматированного текста, либо в виде набора абзацев и так далее. Как бы ни старались разработчики платформы и приложения, полученный файл это не тот "Ворд", которого ожидает пользователь. Этот эрзац всегда является компромиссом между полноценным файлом Ворда и возможностями системы автоматизации. Для того, чтобы формировать полноценный файл Ворда, со всеми возможностями форматирования, которыми пользователи привыкли пользоваться, требуется пересоздать Ворд внутри информационной системы, что практически недостижимо.
Потому, что никакие другие файлы кроме файлов Ворда не будут приняты партнерами пользователя. В этом смысле Ворд безальтернативен т.к. все пользуются именно Вордом. Можно сколько угодно рассуждать о преимуществах Лайбре Офиса, но, когда ежедневно нужно обмениваться документами с десятком новых людей, без Ворда не обойтись.
Что значит сформировать файл Ворд?
В связи с неоднозначностью сложившейся терминологии, считаю нужным пояснить. Под формированием файла Ворд по пользовательскому шаблону я подразумеваю следующий процесс. Пользователь передает разработчику файл с образцом документа, который хочет получать из информационной системы в автоматизированном режиме. Разработчик дорабатывает информационную систему таким образом, чтобы она позволяла формировать файлы, точно соответствующие первоначальному образцу. Точно, значит без явных указаний пользователя разработчик не меняет по своему усмотрению ни одного элемента форматирования, ни шрифт, ни размер, ни поля, ни колонтитулы. НИЧЕГО не меняет. Совершенно ничего. На выходе пользователь должен получить документ неотличимый от документа, созданного собственноручно.
Способы формирования файла Ворд
Работа программы по формированию файла сводится к модификации образца, предоставленного пользователем. К счастью, пользователи приложений, построенных на базе 1С-Предприятия, люди скучные. И их запросы к формированию файлов невелики. Им не требуются информационные буклеты или рекламные плакаты. Им нужны документы. Договоры, акты, письма, исковые заявления, и т.д. Потому обработка файла программой сводится к замене (вставке) текста на полученный из базы данных, удаление каких-то блоков текста и, быть может, вставке небольших картинок, например, логотипа или штрих-кода.
Существует два популярных способа работы с файлами Ворд:
1. Через СОМ-Объект Ворд.
2. Через непосредственную модификацию файлов docx
Главное отличие между ними заключается в том, что первый способ предоставляет разработчику инструмент - полнофункциональный API, позволяющий делать с документом все то же самое, что может делает пользователь, непосредственно работая в редакторе. Второй же способ предполагает собственную разработку инструмента, на основании документации по формату хранения файла. Если функциональность разработанного инструмента перестанет удовлетворять возникающим потребностям - придется разрабатывать (или искать) новый инструмент. В то время как модернизация кода основанного на API СОМ-объектов не представляет сложностей.
Первый способ предполагает, что на том компьютере, где будет исполняться код приложения и формироваться файл, установлен Майкрософт Офис. При установке, Офис регистрирует в Виндоус СОМ-объекты для каждого из приложений входящих в пакет. Таким образом, другие приложения, запущенные на компьютере, могут через интерфейс СОМ-объектов выполнять любые действия с документами офисных приложений, возможности предоставленного программного интерфейса, как минимум, не уступают возможностям пользователя, редактирующего документ непосредственно в приложении.
Главная проблема примеров из интернета по рассматриваемой теме - игнорируется тот факт, что за компьютером сидит живой пользователь. Видимо, предполагается, что после нажатия кнопки "сформировать файл", пользователь должен замереть, не дышать, не дотрагиваться до мыши и клавиатуры в течение всего времени создания файла. А ведь формирование каждого файла может занимать заметное время, в некоторых случаях - больше минуты. И ладно бы вопрос стоял "или так или никак". Но ведь на самом деле, нет. Можно работать с СОМ-Объектом параллельно с работой пользователя, код чувствительный действиям пользователя не имеет никаких преимуществ перед кодом, не мешающим пользователю. Единственная причина, по которой он используется - нежелание разработчика вникнуть в проблему и рассмотреть альтернативные варианты решения.
Код языка 1С для работы с СОМ-Объектами на сервере и на клиенте ничем не отличается. Единственное, за сервером не работает реальный пользователь, поэтому проблема неудачного кода не выплывает с такой остротой. Повторюсь, преимуществ у такого кода все равно нет. Тем более, что код нужно отлаживать, часто это удобнее делать на клиенте, вот и появился пользователь. А еще, может потребоваться перенос работающего кода с сервера на клиент, например, в рамках рефакторинга и изменения архитектуры приложения. А еще, код может работать в файловой базе, где "сервер" очень условен - программный слой, запускаемый на машине каждого пользователя. Таким образом, лучше всего исходить из того, что пользователь за компьютером есть всегда.
Объектная модель Ворд
Ворд, запущенный в качестве СОМ-Объекта, предоставляет доступ к множеству объектов приложения. Понятие "объект" такое же как везде - программная абстракция, имеющая методы и свойства. Методы могут быть как процедурами, так и функциями, при этом функции можно вызывать как процедуры, игнорируя возвращаемое значение. Свойства могут быть либо объектами, либо обычными (скалярными, примитивными) данными, такими как число, строка, логический тип.
Среди объектов особо выделяются специальные объекты-контейнеры, называемые коллекциями. Каждая коллекция предназначена для хранения ссылок на группу однотипных объектов. Например, коллекция Documents хранит ссылки на объекты Document, коллекция Tables хранит ссылки на объекты Table и т.д. Все коллекции именованы во множественном числе, а обычные объекты в единственном. Нумерация объектов в коллекции начинается с единицы. Коллекции Ворд можно перебирать циклом "Для каждого" языка программирования 1С.
Полный список объектов можно, и нужно, смотреть в справочной системе Ворд (раздел справки по Вижуал Бейсику (VBA)). Для старых версий справка откроется локально на компьютере пользователя. Новые версии отправят на сайт Майкрософт: en-us /office/vba/api/overview/word/object-model
Многие методы объектов Ворда в качестве параметров принимают числовые значения. Для того, чтобы не путаться в числовых значениях, в Вижуал Бейсике предусмотрены именованные константы. Например, константа wdFormatRTF соответствует числу 6. В Вижуал Бейсике можно писать код так:
Вне VBA именованные константы недоступны, поэтому код 1С будет таким:
Или, без “магических” чисел, таким:
Я предпочитают последний вариант, терпеть не могу непонятных чисел в коде.
Запуск Ворд, открытие файла
Традиционно, первые три строчки работы СОМ-Объектом Ворд выглядят так:
… и это уже неправильно! Третья строчка сразу говорит о том, что перед вами бездумная копипаста. Справедливости ради, бывают и толковые примеры, начинающиеся именно так, но, это лишь подтверждает, что даже в толковых примерах присутствует копипаста, не осмысленная автором. Что неправильно с третьей командой будет объяснено ниже, сначала разберем первые две строки.
Запускает приложение Ворд и возвращает на него ссылку. Теперь по ссылке Word мы можем обращаться к СОМ-объекту. Возникает закономерный вопрос, влияет ли как-то окружение, в момент выполнения команды, на результат её работы? Из окружения нас интересует в первую очередь интерактивная работа пользователя с Вордом. Возможны два варианта:
- в момент выполнения Ворд запущен (имеются открытые пользователем файлы)
- в момент вызова Ворд не запущен
Так вот, нет, не влияет. Ворд запускается как новый экземпляр приложения, коллекция Documents запущенного приложения не содержит ни одной ссылки, т.е. доступа к ранее открытым документам через ссылку Word не получить.
Но, после запуска СОМ-Объекта, новые, открываемые пользователем, файлы могут открыться именно в этом экземпляре Ворда. Для пользователя разницы нет, но нам это следует, на всякий случай, учитывать.
Скрывает Ворд. Т.е. пользователь не будет видеть обрабатываемый файл в отдельном окне. Никакой особой пользы скрытие окна Ворд не несет. Если программа написана корректно, то пользователь не будет мешать программе, а программа не будет мешать пользователю, вне зависимости от того, видимо ли окно обрабатываемого файла. Естественно, при условии, что пользователь не начнет редактировать открытый документ.
Свойству Visible желательно присвоить одно из значений. В противном случае, СОМ-Объект Ворд откроется в скрытом режиме. Но если пользователь откроет какой-нибудь файл, то наш редактируемый файл может неожиданно стать видимым. С другой стороны, если пользователь успеет открыть свой файл после запуска СОМ-Объекта, но перед тем, как будет выполнено присвоение свойству значения Ложь , то открытый файл станет невидимым и недоступным для редактирования пользователем.
В общем, лично я предпочитаю оставлять редактируемый документ в видимом окне.
Перейдем к неправильной части примера
Открывает файл, в терминологии Ворд открытый файл называется "документ". Далее нужно получить ссылку на открытый документ, чтобы потом по этой ссылке можно было с ним работать. Вы можете найти такие примеры:
Ну что ж, разумно. Предполагаем, что открыт только наш документ, соответственно в коллекции Documents есть единственный элемент, значит этот элемент имеет индекс равный единице. Это работает, вероятность того, что пользователь успеет открыть файл в промежуток времени, между запуском СОМ-Объекта и этим присваиванием, ничтожно мала.
Ну что ж, разумно. Последний открытый в Ворде документ становится активным, можно получить на него ссылку и так. Это работает, вероятность того, что пользователь успеет открыть еще один документ после открытия нашего и до получения ссылки на него ничтожно мала.
Примеры чуточку безумные:
WTF? Хотя, безусловно, работает. С теми же оговорками, что и выше.
Как программировать неправильно, выяснили, теперь о том, как открывать документы правильно.
Для открытия документа можно использовать два метода коллекции Documents . Первый - Open() приведен выше, второй - Add() .
Метод Open() открывает файл для редактирования в Ворде, документ остается связанным с этим файлом - в заголовке окна Ворд указывается имя файла. Открыть можно любой файл, поддерживаемый Вордом, формат файла при редактировании не меняется. Например, открыли файл .rtf, отредактировали, сохранили, файл остался .rtf. Открывать непосредственно шаблон из папки, в которой хранятся шаблоны таким способом не стоит. Если что-то произойдет не так, например, сработает автосохранение в Ворде, шаблон будет испорчен. Сначала файл шаблона следует скопировать (при работе в клиент-серверном варианте это само собой разумеющиеся действие), а потом можно открывать.
Метод Add() создает новый документ на основании указанного шаблона. Шаблоном может быть любой файл, не обязательно родные для Ворда .doc или .docx или .dot. Открытый документ с файлом-шаблоном не связывается, в заголовке окна Ворд будет надпись "Документ1 - Word". При этом информация о формате исходного файла не сохраняется. Открывается просто документ Ворд, содержащий в себе всю информацию из указанного файла. При сохранении без явного указания типа файла он будет сохранен как .docx. Единственное исключение - документ, открытый на основе файла .doc, такие документы по умолчанию сохраняются в файлы .doc. Метод Add() можно использовать для создания документов на основании оригинала шаблона, шаблон повредить невозможно даже случайно.
Методы Open() и Add() являются функциями, т.е. возвращают значение. Причем возвращают они ссылку на новый документ. И ловить потом этот документ в коллекции Documents нам не нужно, ссылку можно сразу сохранить в переменной для дальнейшего использования. Таким образом, для открытия используются следующие команды:
Когда шаблон заполнен требуемым образом его необходимо сохранить. Самый простой вариант, если файл открыли методом Open() , для сохранения достаточно вызвать метод Save() :
Если же документ еще не связан с файлом, нужно вызвать метод SaveAs() :
Если формат по умолчанию нас не устраивает, вторым параметром метода можно явно задать тип файла:
Обратите внимание, не стоит указывать расширение файла. Ошибки не будет, если расширение будет указано явно, например так:
Имеется в виду, что не будет ошибки времени выполнения. Однако, приведенный выше пример идеологически неверен. Допустим, через некоторое время шаблон был заменен и файл шаблона получил расширение .docx. Для внесения изменений в программу нам потребуется две правки, первая в методе Add() , вторая в методе SaveAs() . В этом и проблема, код дублируется, одно изменение должно вносится в одном месте программы, а не в разных. Если расширение файла не будет указано, при сохранении будет добавлено расширение, соответствующее типу сохраняемого файла. Если же расширение будет указано неверно, т.е. не будет соответствовать типу файла, то. либо получаем ошибку времени исполнения, либо файл сохранится в формате, не соответствующем расширению (в зависимости от комбинации тип/расширение возможно и то и другое). Обе ситуации ненормальны. Ошибка времени выполнения, конечно, будет отловлена на этапе тестирования. А ошибка несоответствия расширения фактическому типу данных выйдет потом боком пользователю.
Завершение работы с СОМ-Объектом рекомендуют (неправильно) делать так:
На первый взгляд, можно и не заметить нолик в параметре метода Quit() . А он важен. Это просто константа wdDoNotSaveChanges :-). Закрыться-то Ворд закроется, вместе со всеми файлами, которые пользователь, возможно, открыл и редактирует.
Если мы исходим из предположения, а мы из него исходим, что пользователь может работать интерактивно со своими собственными файлами, которые могут быть открыты в том же экземпляре Ворда, что и наш СОМ-Объект, то торопиться принудительно выгонять пользователей и закрывать экземпляр приложения не стоит. Можно проверить, есть ли еще открытые документы, кроме нашего. Если есть, не закрывать экземпляр Ворда, пусть пользователь спокойно работает, если других документов нет - закрыть:
Не очень популярный, но иногда встречающийся способ.
Сначала в документ добавляются пользовательские свойства. Для Ворда 2016 это делается так:
Это может понадобиться, когда вы создаете однотипные документы под одним и тем же именем, отличающиеся друг от друга лишь датой создания.
Итак, загрузите редактор Word и выберите из меню Сервис (Tools) команду Макрос (Macro). Из открывшегося подменю выберите Редактор Visual Basic (Visual Basic Editor) или нажмите сочетание "горячих клавиш" Alt + F11 .
Перед вами откроется окно редактор Visual Basic с пустым правым окном (это окно именуется окном кода).
Вставьте в это окно следующий код:
Вместо letter вы можете написать свое название, более подходящее по смыслу к вашему документу, например Отчет .
Теперь осталось разместить на панели инструментов кнопку этого макроса (подробнее о том, как разместить кнопку макроса на панели инструментов, я писал в пункте 8 заметки Как расположить два открытых документа Word рядом: полезная макрокоманда).
После создания вами нового документа, нажмите эту кнопку и выберите папку для сохранения файла или воспользуйтесь предлагаемой папкой Мои документы по умолчанию. А имя файла уже будет задано автоматически.
Этот макрос работает только в том случае, если вы создали и сохраняете таким образом новый документ. Если же вы работаете с ранее созданным документом, имеющим другое наименование (скажем, document.doc), то в этом случае при нажатии кнопки макроса будет использоваться старое имя документа, а не предлагаемое макросом.
Вы можете помочь в развитии сайта, сделав пожертвование:
--> Или помочь сайту популярной криптовалютой:
BTC Адрес: 1Pi3a4c6sJPbfF2sSYR2noy61DMBkncSTQ
ETH Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634
LTC Адрес: LUyT9HtGjtDyLDyEbLJZ8WZWGYUr537qbZ
USDT (ERC-20) Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634
Яндекс Деньги: 410013576807538
А тут весь список наших разных крипто адресов, может какой добрый человек пожертвует немного монет или токенов - получит плюсик в карму от нас :) Благо Дарим, за любую помощь! -->
Зачем макрос? Можно обычным стандартным полем это реализовать. Читайте заметку: Как вставить в колонтинтул путь и имя файла.
3 Ответ от Андрей61 28.11.2010 08:29:05
Зачем макрос? Можно обычным стандартным полем это реализовать. Читайте заметку: Как вставить в колонтинтул путь и имя файла.
мне надо вставить имя файла в название документа которое в свойствах, а не в колонтитулах
вроде разобрался, может кому пригодится
1) имя файла без расширения берем отсюда:
"имя файла" = Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 5)
2) присваиваем его названию документа в свойствах документа:
ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle) = "имя файла"
возможно я не внятно задал вопрос
4 Ответ от admin 28.11.2010 08:49:04
возможно я не внятно задал вопрос
Возможно, я неправильно понял
Я решал подобную задачу когда-то и даже здесь на форуме публиковал где-то.
5 Ответ от Ципихович Эндрю 28.11.2010 09:34:23
Не забывайте, писать "$"
Имя_файла = Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 5)
1.Что-то не пойму, а почему отнимаем 5 знаков. вроде же надо 4 знака - ".doc"
2.А что другим способом нельзя узнать имя файла бе з расширения, кроме как отнимать знаки.
6 Ответ от Ципихович Эндрю 28.11.2010 09:44:28
Что я переспрашиваю
Имя_файла = Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 4) '4 а не 5 .
7 Ответ от Андрей61 28.11.2010 10:46:49
ну если расширение .docx то 5
8 Ответ от Андрей61 28.11.2010 10:47:59
2.А что другим способом нельзя узнать имя файла бе з расширения, кроме как отнимать знаки.
наверно можно, я не большой специалист если задаю такие вопросы
Отредактировано Андрей61 (28.11.2010 10:50:10)
9 Ответ от Ципихович Эндрю 28.11.2010 10:52:36
если такие дела:
ну если расширение .docx то 5
То вопрос
А что другим способом нельзя узнать имя файла без расширения, кроме как отнимать знаки
Актуален .
10 Ответ от Ципихович Эндрю 28.11.2010 12:30:09
11 Ответ от Ципихович Эндрю 28.11.2010 12:43:52
из предыдущего поста 4 нижние строки удаляем и получаем, краткость сестра .
Похожие темы
Макрос для вставки имени файла в название документа
Конечно, персональный или переносной компьютер далеко не пишущая машинка, с этим не спорит никто. Однако, все же набор и редактирование текста – одна из важнейших областей его применения. Наш сайт о Microsoft Office Word даст ответ про: сочетание клавиш ctrl alt. В отличие от той же машинки он может делать это умно, грамотно: проверить орфографию, сократить для вас необходимость ручной работы. На портале о Microsoft Office Word вы узнаете про: можно ли в одном файле расположить альбомную и книжную. Но и настройки редактор требует гораздо большей, чем машинка, особенно, если говорить о таком гиганте, как Microsoft Word. Наш сайт о Microsoft Office Word даст ответ про: чем заменить сочетание клавиш.
На сайте, а так же форуме, где обсуждают Word - Ворд Эксперт, можно узнать о программе много нового, найти необходимые вам макросы и шаблоны, получить ответы на вопросы по тем или иным функциям в разных версиях. На портале о Microsoft Office Word вы узнаете про: как вставить значок.
Большое внимание уделено настройкам, потому что одну и ту же операцию в Ворде можно выполнить несколькими различными способами, рассказаны и показаны самые удобные из них. Наш сайт о Microsoft Office Word даст ответ про: ms equation поменять язык. Вы можете поближе ознакомиться с надстройками Ворда (то есть созданием макросов, программированием и так далее), все объясняется просто и на доступном языке. Наш сайт о Microsoft Office Word даст ответ про: на учетной записи пользователь не открываются word и exel.
Возможно, то с чем вы придете на форум, уже обсуждалось или нужное вам решение вывешено в соответствующем разделе. Наш сайт о Microsoft Office Word даст ответ про: красная строка в worde переносит весь текст. У форума удобная структура, так что вы легко отыщите необходимое. Если же по каким-либо причинам найти требуемую информацию не удастся, можете оставить заявку. Наш сайт о Microsoft Office Word даст ответ про: не меняется регистр клавиатуры.
Читайте также: