Страницы: 1
RSS
vba - как вывести на 1 план сгруппированный объект
 
Несколько элементов вывожу на 1 план так:  
ActiveSheet.Shapes.Range(Array( _  
       "Rectangle 1", "Rectangle 2", _  
       "AutoShape 3")).ZOrder msoBringToFront  
Нужно как-то вывести на первый план объект, полученный группировкой указанных объектов.  
Скажите, пжл, как к такому объекту обратиться?
 
ActiveSheet.Shapes("Rectangle 1")
There is no knowledge that is not power
 
ActiveSheet.Shapes(10).ZOrder msoBringToFront - выводится верно по номеру группы  
ActiveSheet.Shapes("Îñíîâà").ZOrder msoBringToFront - присвоила группе-фигуре имя и хочу вывести по-имени (Основа) - ругается  
Как правильно записать с именем, подскажите, пжл?
 
результат работы макрорекодера:  
 
Sub Макрос1()  
   ActiveSheet.Shapes("Rectangle 4").Select  
   ActiveSheet.Shapes.Range(Array("Rectangle 4", "Oval 5")).Select  
   Selection.ShapeRange.Group.Select  
   Selection.ShapeRange.ZOrder msoBringToFront  
End Sub
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Выделяю щелчком в excel группу, в строке имени отображается "Группа 22".  
Почему тогда  
ActiveSheet.Shapes(22).ZOrder msoBringToFront выдает ошибку?
 
ActiveSheet.Shapes("Group 22").ZOrder msoBringToFront - так тоже не работает
 
ActiveSheet.Shapes("Группа 22").ZOrder msoBringToFront - так работает, а по номеру тоже должно
 
вы так можете тыкаться до бесконечности.  
файл приложите.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
файл
 
А так? Не то?
 
{quote}{login=ghjdjlrf}{date=28.04.2011 04:11}{thema=}{post}файл{/post}{/quote}  
ну и где у вас там "Группа 22"?  
 
чуть подправленная запись макрорекодера:  
Sub Макрос1()  
   ActiveSheet.Shapes("Группа 17").ShapeRange.ZOrder msoBringToFront  
End Sub  
 
в стандартный модуль и выполнить.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
была и 22 - удалила  
я же писала что так получилось, не получается обращаться по присвоенному в диспетчере имен имени!
 
диспетчер имен - это не диспетчер для переименования объектов.  
ваш объект как назывался "Группа 17", так и называется.  
а в диспетчере имен вы создали ИМЯ для ФОРМУЛЫ. и эта формула возвращает вам строку "Группа 17"  
 
можете убедиться - в любой ячейке на листе наберите =Основа и нажмите Enter.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
имя объекта меняем так:  
 
Sub Основа2() 'Osnova  
   ActiveSheet.Shapes("Группа 17").Name = "Основа"  
   ActiveSheet.Shapes("Основа").ZOrder msoBringToFront    
End Sub
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Имя тута.
 
{quote}{login=ikki}{date=28.04.2011 04:43}{thema=PS}{post}имя объекта меняем так:  
Sub Основа2() 'Osnova  
   ActiveSheet.Shapes("Группа 17").Name = "Основа"  
   ActiveSheet.Shapes("Основа").ZOrder msoBringToFront    
End Sub{/post}{/quote}  
 
Спасибо большое!
 
Пытаюсь записать макрос, чтобы узнать, как записать команду перемещения фигуры на задний план:  
Sub Макрос3()  
'  
' Макрос3 Макрос  
'  
 
'  
End Sub  
Ничего не записывается почему-то?  
А я создала фигуру и применила к ней команду - на задний план(.
 
ZOrder msoSendToBack - нашла и инете  
а почему все же макрос не записывается?
 
сейчас у меня макросы вызываются по кнопкам, а возможно сделать, чтобы щелчком по самой фигуре на удалялась или появлялись новые фигуры
 
нашла как по фигуре: ПКМ, назначить макрос
Страницы: 1
Читают тему
Наверх