Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
gooriy

Как програмно добавить обработчик сообытия в док MSOffice

02.01.2011, 11:57. Показов 1407. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет народ.
Есть проблемка. Создаю в ASP вордовский документ

Visual Basic
1
2
3
4
5
6
7
Dim sApp 
Set sApp = CreateObject ('Word.Application') 
 
sApp.Visible = TRUE 
sApp.Documents.Add
 
sApp.ActiveDocument.SaveAs 'c:\Path\qqqq.rtf',6,False,'',True,'',False,False,False,False,False
все вроде хорошо, но хотелось бы что бы юзер не смог этот докумет сохранить как, или (что лутше) мог сохранить как, но и сохранил бы его скопией по первоначальному пути чтобы потом можно его было подобрать, т.е. необходимо в документ втиснуть обработчик события 'Сохранить как'. Отключение кнопки не рулит.
Заранее благодарен
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2011, 11:57
Ответы с готовыми решениями:

Как вставить обработчик сообытия onClick для вставленных контролов?
Здравствуйте! Не судите строго,только сегодня познакомилась с VBA Не подскажите ли как справиться со след проблемкой. В EXEL док...

Как програмно добавить в commandbar новый control?
Здравствуй народ, подскажи, Pls, как програмно добавить в commandbar новый control, но так чтобы он добавился только в нужном документе, а...

Как заменить и (или) добавить модули в запароленый проект VBA програмно
необходимо заменить и (или) добавить модули в запароленый проект VBA програмно, с другого проекта VBA, пароль известен. пробовал так: ...

5
Vasya Pupkin
03.01.2011, 09:16
Из ASP не пробовал, а из VBA вот примеры, ну а дальше через объект наверное :-)))
http://www.erlandsendata.no/english/index.php?t=envbavbe
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
03.01.2011, 11:16
Для идеи:
Сначала создаем модуль 2 модуля (Я делал в Excel)
В модуле класса(У меня имя класса MyEvent) пишем:

Public WithEvents HukBut As Office.CommandBarButton
Private Sub HukBut_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
'...Твой код...
MsgBox 'Не нажимай эту кнопку!'
CancelDefault = True
End Sub

В модуле кода (У меня имя модуля Init) пишем:

Dim APP As New MyEvent
Public Sub InitMyEvent()
Set APP.HukBut = Application.CommandBars('File').Controls ('Сохранить как...')
End Sub

После этого экспортируем эти два модуля. Должны получиться два файла Init.bas и MyEvent.cls

Дальше уже с твоего кода (пробовал из Excel)

Dim sApp
Set sApp = CreateObject('Word.Application')
sApp.Visible = True
Set Newbook = sApp.Documents.Add
Newbook.VBProject.VBComponents.Import ('e:Init.bas')
Newbook.VBProject.VBComponents.Import ('e:MyEvent.cls')
Newbook.Application.Run ('InitMyEvent')

Удачи! )
0
gooriy
03.01.2011, 14:03
Спасибо отличная ссылка
gooriy
03.01.2011, 15:34
Помоему
Visual Basic
1
2
3
4
5
 With Application.ActiveDocument.VBProject.VBComponents(1).CodeModule
            .InsertLines .CountOfLines + 1, 'Sub Document_Close()'
            .InsertLines .CountOfLines + 1, '    Msgbox (''Hello'')''
            .InsertLines .CountOfLines + 1, 'End Sub' & Chr(13)
 End With
лутшее подходит
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
04.01.2011, 08:26
<<т.е. необходимо в документ втиснуть обработчик события 'Сохранить как'.>>, что я и попытался сделать. Если нужно отследить просто закрытие документа, тогда последнее действительно лучше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2011, 08:26
Помогаю со студенческими работами здесь

Как програмно в кнопку добавить константу?
Отсылаю напоминание пользователям по некоторой коллекции документов, в скрипте в поле Body добавляю Picture с Hotspot из...

Как програмно добавить элементы в TabControl
Здравствуйте... У меня такая проблема. Допустим имею какоето число int a = 10; надо создать в уже имеющемся таб контроле...

Как добавить обработчик?
Взял скрипт календаря, немного усовершенствовал - всё работает, надо идти дальше - добавлять реакцию в зависимости от выбранной даты. На...

Как добавить обработчик нажатия мыши?
Всем привет. Есть программа которая берёт автоматически точку в заданой области и кликает по ней, и как только движущая точка станет на...

Как добавить код в обработчик события?
Друзья! Здесь написано, как http://msdn.microsoft.com/ru-ru/library/zwwsdtbk.aspx Делаю всё, как сказано. Дохожу жо пятого пункта ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru