powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужно чтобы процедуры работали в отдельно взятом документе Ворда
9 сообщений из 9, страница 1 из 1
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37707513
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создаём класс модуля, назовём его SelectionPaste, вот его код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Option Explicit

Public WithEvents App As Word.Application
'

Private Sub App_WindowBeforeRightClick(ByVal Sel As Selection, Cancel As Boolean)

'событие нажатие правой кнопки мыши
MsgBox$ "Класс SelectionPaste - Нажата правая кнопка мыши"

End Sub

'нажатие левой кнопки мыши не обрабатывается !!! Private Sub App_WindowBeforeLeftClick(ByVal Sel As Selection, Cancel As Boolean)

Private Sub App_WindowBeforeDoubleClick(ByVal Sel As Selection, Cancel As Boolean)

'событие после двойного щелчка левой клавиши мыши
MsgBox$ "Класс SelectionPaste - Двойной щелчок левой клавиши мыши"

End Sub

Private Sub App_WindowSelectionChange(ByVal Sel As Selection)

'проверка на работоспособность
If Len(Selection) <> 0 Then MsgBox$ "Класс SelectionPaste - Выделено"

End Sub



В Нормал.дот имею этот код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub AutoExec()
'AutoExec работает при запуске Word или загрузке глобального шаблона

'в AutoOpen, AutoExec
'служит для запуска класса SelectionPaste
 Application.Run "Normal.Запуск_класса_модуля_SP.Запуск_класса_модуля_SelectionPaste"     

End Sub



и имею модуль, его код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Option Explicit

'служит для запуска класса модуля SelectionPaste, который служит для запуска процедур при событиях:
'выделение определённого текста в документе
'нажатие правой кнопки мыши
'после двойного щелчка левой клавиши мыши
Dim x As New SelectionPaste
'

Sub Запуск_класса_модуля_SelectionPaste()

    Set x.App = Word.Application

End Sub



как это всё сделать не трогая Нормал.дот, чтобы было и работало в отдельно взятом документе Ворда?
...
Рейтинг: 0 / 0
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37707625
катастрофа,
добавить это фсё не в Normal.dot, а в "отдельно взятый документ Ворда". Не ?
...
Рейтинг: 0 / 0
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37707785
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непоняяятно...,

да пробовал, не получилось, сорри можете Вы это закинуть, может руки у Вас правильные...
...
Рейтинг: 0 / 0
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37708845
катастрофа,
до обработки события WindowBeforeDoubleClick очередь так и не доходит :(
а в остальном - работает.
...
Рейтинг: 0 / 0
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37709613
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непоняяятно..., спасибо, там есть от Вас некоторые изменения, поробую разобраться
...
Рейтинг: 0 / 0
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37709796
В класс добавлено свойство строкового типа.
При открытии книги с модулем класса это свойство инициализируется полным именем книги.
Экземпляр класса в обработчиках событий проверяет сответствие этого свойства полному имени активной книги.
...
Рейтинг: 0 / 0
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37709803
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непоняяятно...,
1 - всё ясно, спасибо
2 - никаких книг... одни документы Ворд
3 - а что никак не отследить одно нажатие левой клавиши мыши?
4 - когда отследили правое нажатие клавиши мыши можно запретить вывод контекстного меню?
Спасибо
...
Рейтинг: 0 / 0
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37709814
катастрофа,

3. не знаю, - не ел (с) Волчок
4.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub App_WindowBeforeRightClick(ByVal Sel As Selection, Cancel As Boolean)

'в каком документе произошло событие
If ThisDocFullName <> Application.ActiveDocument.FullName Then Exit Sub

' отмена вывода контекстного меню.
rem кроме ПКМ есть ещё кнопка контекстного меню на клавиатуре, 
rem горячие клавиши, главное меню ...
Cancel = True

'событие нажатие правой кнопки мыши
MsgBox$ "", , "Класс SelectionPaste - Нажата правая кнопка мыши"

End Sub
...
Рейтинг: 0 / 0
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
    #37709850
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непоняяятно..., всё окейно, спасибо
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужно чтобы процедуры работали в отдельно взятом документе Ворда
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]