Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2012, 11:39   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию Macrobutton одним кликом

Здравствуйте, как бы запускать данное поле одним кликом мыши (энергосберегающий режим)
Ципихович Эндрю вне форума Ответить с цитированием
Старый 05.01.2012, 17:43   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

сделал, в классе модуля

Код:
Private Sub App_WindowSelectionChange(ByVal Sel As Selection)

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

'отключаем дёргание экрана при выполнении кода
    Application.ScreenUpdating = False

    If Selection.Fields.Count = 1 Then
        'Selection.Fields(1).Type = 51
        'и
        'Selection.Fields(1).Type = wdFieldMacroButton
        'одно и тоже
        If Selection.Fields(1).Type = wdFieldMacroButton Then

            Dim Код_выделенного_поля_изначально As String
            Код_выделенного_поля_изначально = Trim$(Selection.Fields(1).Code)

            Dim Первый_пробел_в_тексте_кода_поля As Integer
            Первый_пробел_в_тексте_кода_поля = InStr(Код_выделенного_поля_изначально, " ")

            Код_выделенного_поля_изначально = Trim$(Right$(Код_выделенного_поля_изначально, (Len(Код_выделенного_поля_изначально) - Первый_пробел_в_тексте_кода_поля)))
            Первый_пробел_в_тексте_кода_поля = InStr(Код_выделенного_поля_изначально, " ")

            Dim ИмяМакроса As String
            'Mid$(String,Start,[Length])
            ИмяМакроса = Trim$(Mid$(Код_выделенного_поля_изначально, 1, Первый_пробел_в_тексте_кода_поля - 1))

            Dim Сообщение As String
            Сообщение = Trim$(Right$(Код_выделенного_поля_изначально, (Len(Код_выделенного_поля_изначально) - Первый_пробел_в_тексте_кода_поля)))
        End If
    End If

    MsgBox$ ИмяМакроса
сообщает имя макроса, как дальше быть, чтобы рациональней? напрямую как переменная не обратится к нужному имени макроса
Ципихович Эндрю вне форума Ответить с цитированием
Старый 07.01.2012, 11:06   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

посмотрите пожалуйста в прикреплёном файле есть
Модуль
Запуск_класса_модуля_SP
Класс модуля
SelectionPaste
Если их поместить в Нормал.дот всё работает, хотелось бы тоже самое сделать но чтобы это работало только в одном документе, я этот модуль и класс модуля поместил в этот документ, но не работает, что не так???
По задумке это должно работать при нажатии на
1. Первое поле
2. Поле - Дата регистрации материала
3. На любое поле <10 ..... >10
Вложения
Тип файла: doc 00Материал.doc (291.5 Кб, 7 просмотров)
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать Bind на свертывание всех открытых приложений,папок,файлов и т.д. одним волшебным кликом? Aigar Безопасность, Шифрование 5 06.12.2011 11:03
как вставить данные одним кликом. Зияда Microsoft Office Excel 1 20.10.2011 17:12
поле типа MACROBUTTON Ципихович Эндрю Microsoft Office Word 5 13.06.2011 14:04
по excel не запускается двойным кликом syrismak Microsoft Office Excel 3 17.05.2011 07:39
+1 кликом Connector Microsoft Office Excel 20 28.12.2009 13:55