Цитата
victor21043:
Код переделан,но не работает
2010 - [решено] Не работает скрипт смены цвета
Код для изменения цвета при наведении мышки приведен в посте №
2010 - [решено] Не работает скрипт смены цвета
, его и используйте. Вопрос, как я понимаю, каким образом
вернуть кнопке
исходный цвет.
Подходящего события (типа
указатель уходит за пределы вашей кнопки "control 2") я не увидел. Единственный (правда уж очень кривой, но уж какой есть) вариант могу предложить следующий: вставьте в документ элемент управления - рисунок, подложите его под вашу кнопку, размеры задайте чуть больше вашей кнопки чтобы рисунок образовывал некую окантовку (рамку). Событие, когда мышка находится над рисунком будет активировать код, который будет менять цвет вашей кнопки на исходный.
То есть логика следующая: когда курсор прошелся над кнопкой - активируется код из поста №4. Если курсор уйдет с кнопки, он обязательно пройдет над рамкой (рисунком) и активирует код, приведенный в конце этого поста, который перекрасит кнопку в исходный цвет.
К сожалению, ширину рамки нужно брать достаточно большую, иначе обработчик не всегда срабатывает при быстром перемещении мышки, но вы можете настроить цвет этой рамки (например - белый в цвет листа, или синий - в цвет скрываемого поля и ширину взять равной ширине поля), чтобы эта рамка не сильно бросалась в глаза.
Для этого:
во вкладке меню Word "Разработчик" (помнится по умолчанию отображение этой вкладки отключено, возможно придется включить в параметрах) предварительно отобразив ваше текстовое поле, нажмите кнопку "Режим конструктора". В этом же секторе вкладки "Разработчик" -> "Элементы управления" выбрать вставку элемента управления "Изображения" (вставится пустая рамка). Щелкнуть по рамке рисунка и выбрать "формат объекта" -> "положение" -> "За текстом". Переместить поле под кнопку, но так чтобы оно было над вашем текстовым полем (поле можно сдвинуть ниже). В режиме конструктор доступна кнопка "свойства", чтобы поменять например цвет рамки рисунка, фон и т.д. Высоту и ширину изображения подгоняете слегка побольше чем кнопка, чтобы получилась некая рамка, после чего отключаете режим конструктора.
Необходимо вставить следующий код:
Код
[spoiler]Код:
[/spoiler]
Код: Выделить всё
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ActiveDocument.Shapes("Control 2").OLEFormat.Object.ForeColor = vbRed
End Sub
С любопытством ознакомлюсь с любым более "правильным" вариантом по возвращению кнопке исходного цвета.