Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1591 / 558 / 74
Регистрация: 10.04.2009
Сообщений: 9,106
1

В шаблоне не выполняется процедура в AutoClose

10.01.2012, 21:37. Показов 3088. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется шаблон, его имя например 1.dot у него есть процедура AutoClose
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub AutoClose()
'AutoClose работает при закрытии документа Ворд
 
'отключаем дёргание экрана при выполнении кода
    Application.ScreenUpdating = False
 
    'условие, если были в документе изменения и ..., тогда ...
    'сравниваем с именем "00Материал, уголовное дело №.doc"
    'чтобы после сохранения документа под другим именем форма сохранения документа больше не появлялась
    If ActiveDocument.Saved = False And Len(ActiveDocument.Path) = 0 Then
 
        'выполнить процедуру ..., в этой процедуре показать форму с именем ... в модальном режиме
        'в модальном режиме форма не является помехой для осуществления других действий
        'не нужно имени кнопки и имени формы давать одно и тоже имя
        Call UserForm_Сохранить_документ_Show
    End If
 
    'отменяем отключенное ранее дёргание экрана при выполнении кода
    Application.ScreenUpdating = True
 
End Sub
смысл такой если на основе этого шаблона я что-то создаю, тогда выполнить процедуру, процедура показывает форму. Но условие я делаю, то есть на основе этого шаблона я что-то создаю, но процедура не выполняется, форма не отображается, если вручную пройду пошагово AutoClose, тогда всё ОК

Добавлено через 11 минут
опытным путём узнал, что процедуры АутоОпен и АутоКлозе выполняются когда открываю шаблон, а если на его основе создаю, тогда нет. Можно ли и как сделать, чтобы и когда на основе шаблона создавал документ эти процедуры выполнялись???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2012, 21:37
Ответы с готовыми решениями:

Не выполняется процедура
Собственно не выполняется процедура edit. В чем может быть проблема? program pr1; uses...

Не выполняется хранимая процедура
Доброго времени суток! Имеется хранимая процедура USE GO /****** Object: StoredProcedure...

Не выполняется хранимая процедура MySql
Есть такой фрагмент кода, он НЕ ловит ошибку с выполнением процедуры и данных НЕ добавляет. Как...

Медленно выполняется хранимая процедура
Процедура содержит в себе инструкцию Merge с переносом данных из одной тяжёлой таблицы в другую с...

11
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
10.01.2012, 22:23 2
Эндрю, а поставьте ещё один опыт: переименуйте AutoClose в AutoExit — может, сработает.
0
1591 / 558 / 74
Регистрация: 10.04.2009
Сообщений: 9,106
10.01.2012, 23:30  [ТС] 3
увы и ах, нет, опыт поставлен не работает!!
0
5612 / 1596 / 414
Регистрация: 23.12.2010
Сообщений: 2,392
Записей в блоге: 1
11.01.2012, 09:40 4
В шаблоне создай процедуру:
Visual Basic
1
2
3
Sub AutoNew()
'... 
End Sub
0
1591 / 558 / 74
Регистрация: 10.04.2009
Сообщений: 9,106
11.01.2012, 18:10  [ТС] 5
когда файл открываю АутоОпен и АутоКлозе работают, когда создаю ничего не работает в том числе и
Цитата Сообщение от KoGG Посмотреть сообщение
AutoNew
???
0
5612 / 1596 / 414
Регистрация: 23.12.2010
Сообщений: 2,392
Записей в блоге: 1
12.01.2012, 13:36 6
Когда создаешь новый файл, использую при создании шаблон *.dot, в котором находится процедура AutoNew, запускается процедура AutoNew из шаблона. Защита от макросов должна быть отключена.
Должны выполняться различные условия для срабатывния автомакросов, из справки:
Auto macros in code modules are recognized if either of the following conditions are true.

The module is named after the auto macro (for example, AutoExec) and it contains a procedure named "Main."
A procedure in any module is named after the auto macro.
Just like other macros, auto macros can be stored in the Normal template, another template, or a document. In order for an auto macro to run, it must be either in the Normal template, in the active document, or in the template on which the active document is based. The only exception is the AutoExec macro, which will not run automatically unless it is stored in one of the following: the Normal template, a template that is loaded globally through the Templates and Add-Ins dialog box, or a global template stored in the folder specified as the Startup folder.

In the case of a naming conflict (multiple auto macros with the same name), Word runs the auto macro stored in the closest context. For example, if you create an AutoClose macro in a document and in the attached template, only the auto macro stored in the document will execute. If you create an AutoNew macro in the normal template, the macro will run if a macro named AutoNew does not exist in the document or the attached template.
0
1591 / 558 / 74
Регистрация: 10.04.2009
Сообщений: 9,106
12.01.2012, 16:07  [ТС] 7
Вы можете выложить шаблон с именем 1.dot и 4-мя процедурами в которых всего 1 строка кода с MsgBox с текстами
Visual Basic
1
2
3
4
MsgBox "Это работает открытие шаблона"
MsgBox "Это работает создание с шаблона"
MsgBox "Это работает закрытие шаблона"
MsgBox "Это работает закрытие документа созданного с шаблона"
Спасибо
0
5612 / 1596 / 414
Регистрация: 23.12.2010
Сообщений: 2,392
Записей в блоге: 1
13.01.2012, 11:11 8
Вот смежная тема, там работает процедура AutoNew при создании документа с указанием шаблона используемого при создании.
Автоматическое добавление следующего номера документа в шаблон
0
5612 / 1596 / 414
Регистрация: 23.12.2010
Сообщений: 2,392
Записей в блоге: 1
13.01.2012, 11:49 9
У меня (Офис 2007, Windows 7) при двойном щелчке по шаблону из проводника открытия шаблона не происходит, а сразу происходит создание нового документа (аналогично созданию нового документа из меню Word с указанием шаблона для создания).
Открыть и редактировать шаблон можно из меню Word, при этом не происходит создания документа.
Я думаю, что и AutoOpen и AutoClose в шаблоне срабатывает только при закрытии редактируюемого шаблона, а не при создании документа по шаблону.
Вложения
Тип файла: zip 1.zip (11.7 Кб, 10 просмотров)
0
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
13.01.2012, 11:51 10
Ципихович Эндрю,
у меня срабатывает макрос AutoNew при создании документа на основе определённого шаблона.
0
5612 / 1596 / 414
Регистрация: 23.12.2010
Сообщений: 2,392
Записей в блоге: 1
13.01.2012, 12:13 11
Проблема еще в том, что и в документе и шаблоне работают одни и те же процедуры:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub AutoOpen()
    MsgBox "Это работает открытие " & ActiveDocument.Name
End Sub
 
Sub AutoNew()
    MsgBox "Это работает создание документа из шаблона " & ThisDocument.Name
End Sub
 
Sub AutoClose()
    MsgBox "Это работает закрытие " & ActiveDocument.Name
End Sub
Вложения
Тип файла: zip 2.zip (11.8 Кб, 21 просмотров)
1
1591 / 558 / 74
Регистрация: 10.04.2009
Сообщений: 9,106
13.01.2012, 15:26  [ТС] 12
Окейно, спасибо, проверил, работает, вникну как делали
0
13.01.2012, 15:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2012, 15:26
Помогаю со студенческими работами здесь

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

Узнать под каким логином выполняется процедура
Как узнать под каким логином была вызвана конкретная хранимка в бд? Есть ли какая ни будь...

Не выполняется хранимая процедура - Parametr mismatch for procedure
День добрый. Не выполняется хранимая процедура, пишет ошибку недопустимого параметра в процедуре. в...

как посчитать, сколько тактов выполняется процедура?
Всем привет! Такое ощущение, что я уже знаЛ, как это делать, но забыл. Или считал простенькие...


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

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