|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.11.2012, 20:11 | #1 |
Регистрация: 03.11.2012
Сообщений: 5
|
Delphi и макросы в Excel
Необходимо программно в модуль книги добавить макрос запрещающий возможность сохранения изменений. Делаю так:
Код:
|
03.11.2012, 20:39 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Оттого, что Вы код в книгу вписали, макрос в списке не появится.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
03.11.2012, 20:44 | #3 |
Регистрация: 03.11.2012
Сообщений: 5
|
в коде WorkBook'а появляется:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True End Sub что нужно сделать чтобы это сохранилось? Sciv, я понимаю что вопрос наверное очень глупый, но я никогда с этим не сталкивалась =( Последний раз редактировалось LadyInRed; 03.11.2012 в 20:51. |
03.11.2012, 22:20 | #4 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
да нет, не такой уж глупый... А вот я, походу, туплю Выскажу предположение, что макрос не сохраняется по причине его же самого - то есть запрещая все изменения в книге, он также запрещает и собственное сохранение... о как!
Философия, однако, какая-то... Проверить можно просто: сделайте макрос, ничего не запрещающий, просто выводящий сообщение (что-нибудь типа 'Sub Test()' + #13 + ' MsgBox "Привет, мир!"' + #13 + 'End Sub'), и попробуйте сохранить так же, как делаете. Если сохранится - значит, я прав.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 03.11.2012 в 22:22. |
03.11.2012, 22:22 | #5 |
Регистрация: 03.11.2012
Сообщений: 5
|
Sciv, если я вручную беру и добавляю этот макрос и нажимаю кнопку сохранить он же сохраняется)))
хотя сейчас попробовала добавить другой макрос к книге и он сохранился ... так что Вы видимо правы ... тогда как же запретить дальнейшее сохранение в файле? Последний раз редактировалось LadyInRed; 03.11.2012 в 22:27. |
03.11.2012, 22:26 | #6 | ||
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Цитата:
Либо противоречие, либо... Мысль такая, что вручную в экселе Вы сначала сохраняете макрос, а потом всю книгу. Вот во втором случае он срабатывает, а в первом - нет. С динамическим же макросом из дельфи получается так, что Вы добавляете код в книгу и тут же пытаетесь все сохранить - вот он и отрабатывает положенный ему алгоритм UPD Развивая мысль, предположу, что нужно использовать что-то типа W.Workbooks[1].VBProject.Save
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 03.11.2012 в 22:28. |
||
03.11.2012, 22:50 | #7 |
Регистрация: 03.11.2012
Сообщений: 5
|
осталось найти что-нибудь подобное =)
Последний раз редактировалось LadyInRed; 03.11.2012 в 22:54. |
03.11.2012, 23:15 | #8 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
В редакторе Visual Basic в экселе есть Object Browser (открывается по F2). Там смотрите.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
04.11.2012, 12:21 | #9 |
Регистрация: 03.11.2012
Сообщений: 5
|
Ничего подходящего я там найти так и не смогла =( нашла выход, но совсем не красивый
программно добавляю следующие макросы Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
макросы в Excel | muzon45 | Помощь студентам | 0 | 13.12.2011 09:38 |
Макросы в Excel | Jaybe | Microsoft Office Excel | 2 | 14.05.2009 15:04 |
макросы Excel | Ravil-022 | Помощь студентам | 2 | 28.07.2008 21:12 |
макросы в Excel | Ravil-022 | Софт | 0 | 28.07.2008 17:56 |
макросы в Excel | Ravil-022 | Софт | 0 | 28.07.2008 17:46 |