Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужно чтобы процедуры работали в отдельно взятом документе Ворда / 9 сообщений из 9, страница 1 из 1
15.03.2012, 21:11
    #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
15.03.2012, 22:50
    #37707625
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
катастрофа,
добавить это фсё не в Normal.dot, а в "отдельно взятый документ Ворда". Не ?
...
Рейтинг: 0 / 0
16.03.2012, 05:54
    #37707785
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
непоняяятно...,

да пробовал, не получилось, сорри можете Вы это закинуть, может руки у Вас правильные...
...
Рейтинг: 0 / 0
16.03.2012, 16:56
    #37708845
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
катастрофа,
до обработки события WindowBeforeDoubleClick очередь так и не доходит :(
а в остальном - работает.
...
Рейтинг: 0 / 0
17.03.2012, 06:31
    #37709613
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
непоняяятно..., спасибо, там есть от Вас некоторые изменения, поробую разобраться
...
Рейтинг: 0 / 0
17.03.2012, 13:59
    #37709796
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
В класс добавлено свойство строкового типа.
При открытии книги с модулем класса это свойство инициализируется полным именем книги.
Экземпляр класса в обработчиках событий проверяет сответствие этого свойства полному имени активной книги.
...
Рейтинг: 0 / 0
17.03.2012, 14:08
    #37709803
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
непоняяятно...,
1 - всё ясно, спасибо
2 - никаких книг... одни документы Ворд
3 - а что никак не отследить одно нажатие левой клавиши мыши?
4 - когда отследили правое нажатие клавиши мыши можно запретить вывод контекстного меню?
Спасибо
...
Рейтинг: 0 / 0
17.03.2012, 14:30
    #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
17.03.2012, 15:29
    #37709850
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно чтобы процедуры работали в отдельно взятом документе Ворда
непоняяятно..., всё окейно, спасибо
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужно чтобы процедуры работали в отдельно взятом документе Ворда / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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