Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/40: Рейтинг темы: голосов - 40, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 23
1

Сохранение документов без поддержки макросов

13.06.2016, 12:46. Показов 7834. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При пересохранении документов на основе шаблона, в новых документах сохраняются все макросы из шаблона, а нужно пересохранять документы без поддержки макросов.
Делаю пересохранение кодом:
Кликните здесь для просмотра всего текста

Visual Basic
1
oActDoc.SaveAs2 oActDoc.Path & "/" & sActDocNewFileName, wdFormatDocumentDefault

Документ пересохраняется это да, НО, если в документе перед его закрытием сделать в нем хоть какое то малейшее изменение – букву добавить или абзац убрать, не важно..., то уже в последствии при сохранении последних изменений появляется сообщение:
Вложение 706067
Что я делаю не так? Или чего не хватает в коде, чтобы сообщение пользователю не выводилось после пересохранения документа и внесения в него последних изменений?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2016, 12:46
Ответы с готовыми решениями:

Сохранение документа Word без макросов
Задача в следующем: Создан шаблон с макрокомандами, формирующими документ. Требуется сохранять...

Программное сохранение книги с отработкой макросов
Доброе время суток. Подскажите как программно сохранить книгу с выполнением макросов. Есть...

Закрыть приложение Word БЕЗ сохранения документов и без запроса
Добрый день! После открытия документа и выполнения манипуляций с ним Word выдает запрос о...

Сохранить файл без макросов
Есть один файл, с одним листом. Называется он oo.xls. Как его сохранить как ooo.xls без макросов, и...

6
1563 / 364 / 100
Регистрация: 13.11.2008
Сообщений: 754
13.06.2016, 15:55 2
Вложения нет, если честно.
Но победить сообщение можно попробовать так:
перед сохранением добавить строку:
Visual Basic
1
Application.DisplayAlerts = 0
только не забудьте после этого вернуть обратно:
Visual Basic
1
Application.DisplayAlerts = -1
0
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 23
13.06.2016, 20:58  [ТС] 3
The_Prist,
Строка не помогла:
Visual Basic
1
Application.DisplayAlerts = 0
Все равно после пересохранения, если открыть редактор VBA то отображаются имя проекта и модули. Стоит закрыть файл не внося в него изменений, а потом тут же переоткрыть, то все ок. Но если после пересохранения не закрывая документ внести в него любые изменения и нажать сохранить, то сразу же появляется окно сообщения.

"Вложения нет, если честно."
Сори, почему то с первого раза картинка не подгрузилась и отсылает к админу.
Сохранение документов без поддержки макросов
0
1563 / 364 / 100
Регистрация: 13.11.2008
Сообщений: 754
13.06.2016, 22:25 4
Цитата Сообщение от natawka Посмотреть сообщение
Но если после пересохранения не закрывая документ внести
Так модули и не удалятся пока книгу не закроете - особенность такая.
И я не совсем понял: Вы кодом сохраняете или вручную? У меня отключение сообщений работает. Сохраняю в формат без макросов кодом - не ругается никак. Вношу изменения и заново сохраняю - тоже все нормально. Если вручную - то да, появляется окно. Ну а куда оно денется? Оно предупреждает пользователя, который собственными руками пытается сохранить документ, содержащий коды, без этих кодов.
Может Вам просто сохранять документ кодом в формате без поддержки макросов, а потом так же кодом закрыть и заново открыть? И уже после этого пусть пользователь вносит изменения - тогда никаких кодов там уже точно не будет.
0
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 23
14.06.2016, 22:11  [ТС] 5
Цитата Сообщение от The_Prist Посмотреть сообщение
Так модули и не удалятся пока книгу не закроете - особенность такая.
И я не совсем понял: Вы кодом сохраняете или вручную? У меня отключение сообщений работает. Сохраняю в формат без макросов кодом - не ругается никак. Вношу изменения и заново сохраняю - тоже все нормально. Если вручную - то да, появляется окно. Ну а куда оно денется? Оно предупреждает пользователя, который собственными руками пытается сохранить документ, содержащий коды, без этих кодов.
Может Вам просто сохранять документ кодом в формате без поддержки макросов, а потом так же кодом закрыть и заново открыть? И уже после этого пусть пользователь вносит изменения - тогда никаких кодов там уже точно не будет.
Не совсем понятен вопрос, про кодом сохраняю документ???
В редакторе VBA в процедуре делаю пересохранение через SaveAs2. Т.е. не так как это обычно делает пользователь, а программно.
Пока что выхожу из положения как раз именно тем, что программно в начале делаю пересохранение, потом закрываю документ и затем снова его же открываю и тогда сообщение не выводится, все работает как надо.
Но получается просто как то странно и тупо, что после пересохранения приходится закрывать и снова открыть этот же документ.
Неужели это единственный способ, чтобы избежать это сообщение???

Добавлено через 33 минуты
Возможно я что упускаю в параметрах SaveAs2, чтобы документ сразу сохранялся без поддержки макросов?
Поэтому данное сообщение и выводится, но в справке VBA я не нахожу подобного параметра.
0
1563 / 364 / 100
Регистрация: 13.11.2008
Сообщений: 754
14.06.2016, 22:45 6
Цитата Сообщение от natawka Посмотреть сообщение
Не совсем понятен вопрос
Тогда я поясню "понятннее": когда появляется сообщение из скрина? Когда программно сохраняете или когда пользователь после внесения изменений нажимает Сохранить? Если второе - то выход только один и параметры SaveAs2 здесь не при чем. Я же написал:
Цитата Сообщение от The_Prist Посмотреть сообщение
Так модули и не удалятся пока книгу не закроете - особенность такая.
Т.е. никакие параметры не помогут - так уж задумано, что существующие в книге модули удаляются только после закрытия книги.
1
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 23
15.06.2016, 23:24  [ТС] 7
Цитата Сообщение от The_Prist Посмотреть сообщение
Тогда я поясню "понятннее": когда появляется сообщение из скрина? Когда программно сохраняете или когда пользователь после внесения изменений нажимает Сохранить?
Ага, теперь понятно. Сообщение из скрина появляется тогда, когда пользователь внес какие-либо изменения и пытается сохранить документ, т.е. жмет стандартную дискетку "Сохранить" на панели инструментов. Т.е. сообщение появляется после того как макрос отработает пересохранение - код ошибок не вызывает.
В общем понятно..., раз такая особенность, значит тогда вариант с переоткрытием после пересохранения файла - это единственный способ и другого не дано.
___________
The_Prist, спасибо Вам большое за помощь и консультацию.
0
15.06.2016, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2016, 23:24
Помогаю со студенческими работами здесь

Сохранение документов
Вопрос такой. 1C v77 появилось необходимость, в такой фишке. из документа по истечению срока...

Суммирование последующих ячеек, без макросов
прошу помочь задачей, она в файле. мое решение - путем формулы =ЕСЛИ(C$12<$B$7;$B$8;$B$8/2)...

сохранить копию doc без макросов
Здравствуйте есть 2.doc с макросами, как с помощью vba его же скопировать но уже что бы в нём не...

Сохранение Текстових документов???
Помогите пожалуйста создать диалоговое окно для сохранения тектових документов? Такое же как и в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru