Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 28 май 2017, 22:24

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


Размещение файлов в формате vsd (а не vsdx/vsdm), увеличивает вероятность ответа стремительным домкратом !!!



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Кнопки переключения слоев
СообщениеДобавлено: 13 июл 2016, 17:47 
Не в сети

Зарегистрирован: 13 июл 2016, 17:35
Сообщений: 2
Использую Visio c: 2016
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Добрый день! Имеется схема коммутации серверной стойки, к примеру в стойке установлено 6 приборов, от прибора "1" (главный прибор) проложены соединительные линии к прибору "2" (вынесено на слой 1). Линии соединения прибора "1" с прибором "3" вынесены на слой 2 и т.д. Задача: вынести на лист кнопки по активации которых происходило включение и отключение видимости слоев 1,2,3,.... Управление слоями через меню "Свойства слоя" не удобное и не информативное, возможно решить такую задачу? подскажите как или пните в нужном направлении. Спасибо!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 13 июл 2016, 19:20 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 805
Очков репутации: 100573

Добавить очки репутацииУменьшить очки репутации
Цитата:
...Управление слоями через меню "Свойства слоя" не удобное и не информативное...

То есть галочки нужно заменить на кнопочки? Или я чего-то не понял.
В принципе, чтобы включить-выключить слой нужна одна команда. Типа такой.
Код:
ActivePage.Layers(1).CellsC(4) = True

Нажатие кнопки может вызывать макрос, который и выполнит нужное действие.
Дальше все зависит от того, сколько у Вас слоев, как Вы будете сопоставлять кнопки и слои при изменении их количества и т.д.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 13 июл 2016, 19:25 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 805
Очков репутации: 100573

Добавить очки репутацииУменьшить очки репутации
Кстати, уже был аналогичный вопрос.
viewtopic.php?f=6&t=973


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 13 июл 2016, 19:28 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 403
Использую Visio c: 2008
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
Так что - ли?


Вложения:
Layers.vsd [48 Кб]
Скачиваний: 27
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 13 июл 2016, 19:47 
Не в сети

Зарегистрирован: 13 июл 2016, 17:35
Сообщений: 2
Использую Visio c: 2016
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Shishok писал(а):
Так что - ли?

Именно так.
А если еще расскажите как сделать вообще отлично будет)))


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 13 июл 2016, 21:37 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 403
Использую Visio c: 2008
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
Ну как - то так:
Индекс нужного слоя (то что в примере исправлено на - 10), смотреть в Shapesheet листа.

Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 13 июл 2016, 21:44 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 403
Использую Visio c: 2008
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
А лучше код в файле заменить на такой:
Код:
Option Explicit

Private Sub CommandButton1_Click()
    Call On_Off_Layers(1)
End Sub

Private Sub CommandButton2_Click()
    Call On_Off_Layers(2)
End Sub

Private Sub CommandButton3_Click()
    Call On_Off_Layers(3)
End Sub

Private Sub On_Off_Layers(arg)
    Dim vsoLayer As Visio.Layer
    Set vsoLayer = Application.ActiveWindow.Page.Layers.Item(arg)
   
    With vsoLayer.CellsC(visLayerVisible)
        If .FormulaU = "1" Then
            .FormulaU = "0"
        Else
            .FormulaU = "1"
        End If
    End With
End Sub


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 14 июл 2016, 03:40 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Вопрос задан в ветке Общие вопросы, таким образом предполагает ответ - как сделать это штатными средствами! Штатными средствами - только через это меню
Цитата:
...Управление слоями через меню "Свойства слоя" не удобное и не информативное...
полученные ответы, уместны в ветке Программирование!
не первый пользователь задает подобные вопросы и мечтает плодить сущности (квадратики или кнопочки) без крайней на то необходимости (IMHO)!
Рассказали бы хоть, чем меню не удобно? Потом, чем не информативно?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 18 июл 2016, 13:24 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Surrogate писал(а):
Рассказали бы хоть, чем меню не удобно? Потом, чем не информативно?
просто хочется получить аргументированный ответ !


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 18 июл 2016, 19:26 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 403
Использую Visio c: 2008
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
Для удобства можно вынести кнопку на панель быстрого доступа. Только выносить надо не кнопку Слой, а кнопку Свойства слоя.

Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Кнопки переключения слоев
СообщениеДобавлено: 14 ноя 2016, 17:54 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Shishok писал(а):
With vsoLayer.CellsC(visLayerVisible)
If .FormulaU = "1" Then
.FormulaU = "0"
Else
.FormulaU = "1"
End If
End With

Похоже, что не обязательно указывать свойство .FormulaU
Достаточно написать простую логическую инверсию:
Код:
vsoLayer.CellsC(visLayerVisible) = Not(vsoLayer.CellsC(visLayerVisible))

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB