Author |
Topic |
|
Lena
11 Posts |
Posted - 12/15/2004 : 18:22:20
|
Добрый день всем! Подскажите пожалуйста, как сделать так, чтобы при щелчке на шейп "прямоугольник" запускалась на выполнение процедура, написанная для этого шейпа, а при двойном щелчке также и оставалось изменение текста в шейпе. |
|
Tumanov
Russia
1198 Posts |
Posted - 12/15/2004 : 19:15:09
|
Был где-то похожий вопрос: "Как программно изменить цвет шейпа при выборе одинарным кликом?" Вам надо либо действовать таким же образом, но в обработчике фильтровать шейпы, либо объявлять WithEvents не Window, а именно нужный шейп и использовать другое событие.
Ниже цитата для "Как программно изменить... " -------------------------------------------------------------------------------- Можно ориентироваться на SelectionChanged, считая, что по одиночному клику шейп становится селектрованным. Например, вот такой обработчик SelectionChanged отлично перекрашивает шейпы, если щелкать по разным шейпам. Надо только помнить, что если щелкнуть по селектированному шейпу, он перестает быть селектированным :) Window.Selection(1).Cells("FillForegnd").Formula = Window.Selection(1).Cells("FillForegnd") + 1
------------------------------------ а можно полный код? что-то не идет.
-------------------------------------------------------------------------------- Dim WithEvents Win As Window Sub ttt() Set Win = ActiveWindow End Sub Private Sub Win_SelectionChanged(ByVal Window As IVWindow) Window.Selection(1).Cells("FillForegnd").Formula = Window.Selection(1).Cells("FillForegnd") + 1 End Sub Сначала один раз выполнить ttt(). Потом можно долго щелкать по неселектированным шейпам - они будут перекрашиваться.
|
|
|
Lena
11 Posts |
Posted - 12/16/2004 : 15:53:03
|
Ничего не получается, и возникает такой вопрос, если вместо этих шейпов ставить commandbutton, тогда при некотором количестве возникают глюки, когда двигаешь лист (они как бы двигаются вместе с листом), можно от этого как-нибудь избавиться. |
|
|
|
Topic |
|
|
|