StrikeR33
Гость
|
 |
« : 02-06-2008 12:32 »  |
|
VBA Word в общем проблема такая… Программный код не считывается, если документ поставлен на «Защиту формы», т.е. при таком условии макросы не работают. Условием задачи является обязательная «защищенность формы».
Решение было найдено: в начале выполнения макроса необходимо отключить «защиту формы» программно, VBА это позволяет; затем поставить на выполнение программную процедуру – макрос, а затем по окончании выполнений всех процедур с документом снова поставить защиту.
Но здесь есть один минус, если отключать "защиту формы" программно, все программные процедуры обработки документа протекают медленнее в 2 раза , по сравнению с тем случаем, когда это делается вручную. Но вручную отключать документ не годиться – слишком примитивно получается.
Этот момент был исправлен более в поздних версиях офиса, или точнее сказать программном ядре VBA. Но нужно сделать программу с учётом старых версий, найти способ как это обойти (обойти медленное исполнение)…
Рекомендации по оптимизации кода не предлагать
|