Страницы: 1
RSS
Заблокировать элемент управления формы
 
Добрый денек всем!  
Решил заменить на листе элементы АктивХ (кнопки) на рисунки (прямоугольники).  
В связи с этим возник вопрос - как заблокировать эти элементы от случайного нажатия?  
Макрорекордер любые действия с этими объектами игнорирует.
 
А чем вам кнопки не понравились? Они вообще-то корректнее работают, чем привязка макроса к картинке - труднее случайно удалить, например, да и развитая структура событий ...  
 
А по вашему вопросу:    
— если макрос к фигуре не припишите, то и обрабатываться при случайном нажатии он не будет.  
— а как вы собираетесь случайное нажатие от неслучайного отличать?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Макрос приписан.  
АктивХ свойство доступ, другая кнопка для управлением этим свойством у всех остальных, и все.  
А здесь как?  
Кнопки не понравились внешним видом.
 
Алекс правильно спрашивает: как вы собираетесь случайное нажатие от неслучайного отличать?
 
Неслучайное - кнопка мною разблокирована (АктивХ Enabled = true), макрос выполняется.  
Случайное - кнопка мною заблокирована (АктивХ Enabled = false), и дави сколько хочешь.
 
Клик по рисунку вызывает макрос "Main"  
 
Sub Main()  
if АктивХ.Enabled = true tnen call ВашМакрос    
end sub  
(проверять связанную ячейку)
 
Юрий М  
Все правильно. Было:  
Private Sub CommandButton1_Click()  
If CommandButton2.Enabled = False Then  
CommandButton2.Enabled = true  
CommandButton3.Enabled = true  
Else  
CommandButton2.Enabled = False    
CommandButton3.Enabled = False    
End If  
End Sub  
Private Sub CommandButton2_Click()  
Call Печать_КВ  
End Sub  
 
Но у прямоугольников(рисунков) свойства Enabled нет.  
Или я не знаю, как его(или аналог) найти!
 
Поступите иначе: первый клик присвоит некой ячейке значение 1. Второй клик проверит эту ячейку - если там 1, то присвоит 0. А запуск ваших макросов сделайте возможным, если в этой ячейке 1 (True)
 
Или переменную вместо ячейки.
 
С переменной работает, но одна неприятность - по виду кнопки нельзя определить - активна ли она. Можно ли как программно изменить внешний вид (или скрыть) рисунок?  
 
#89999#
 
Программно меняйте текст, заливку... Если скроете - как потом ещё раз её нажмёте? :-)
 
{quote}{login=Юрий М}{date=16.11.2010 04:45}{thema=}{post}Программно меняйте текст, заливку... Если скроете - как потом ещё раз её нажмёте? :-){/post}{/quote}  
Весь вопрос - как???  
Я писал "Макрорекордер любые действия с этими объектами игнорирует."  
Поэтому возникает вопрос - как к этому объекту обратиться?  
Пока не решен этот вопрос, "Если скроете - как потом ещё раз её нажмёте?" не имеет смысла.
 
Благодарю!  
Private Sub CommandButton1_Click()  
If ActiveSheet.DrawingObjects("AutoShape 2").Visible = True Then  
ActiveSheet.DrawingObjects("AutoShape 2").Visible = False  
Else  
ActiveSheet.DrawingObjects("AutoShape 2").Visible = True  
End If  
End Sub  
То, что надо!
Страницы: 1
Читают тему
Наверх