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

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

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 113 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 11:36 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 11:59 
Не в сети
Новичок

Зарегистрирован: 09 ноя 2016, 12:04
Сообщений: 45
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
У Меня только возникает вопрос как во вновь создаваемый документ из екселя добавить заливку...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 12:03 
Не в сети
Administrator

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

ты хочешь ее программно сгенерить ? это геморойный вариант. проще создать ее ручками. сохранить в файле у себя!
а потом копировать фигуру с такой заливкой в любой документ. заливка она как вирус, сразу поселится в новом документе

мой совет такой сделай смарт-шейп (мастер), а этим мастером управляй из экселя сколько угодно


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 12:10 
Не в сети
Ветеран

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

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

Создать специальный трафарет (stensil) со своими стойками, перекладинами и т. д.
Программно подключать его к документу и программно вытаскивать оттуда. Потом менять размеры. Программно. :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 13:06 
Не в сети
Новичок

Зарегистрирован: 09 ноя 2016, 12:04
Сообщений: 45
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
ты хочешь ее программно сгенерить ? это геморойный вариант. проще создать ее ручками. сохранить в файле у себя!
а потом копировать фигуру с такой заливкой в любой документ. заливка она как вирус, сразу поселится в новом документе

мой совет такой сделай смарт-шейп (мастер), а этим мастером управляй из экселя сколько угодно

ну Я не то что бы прям хочу, Я просто разобрался с заливкой и удалил половину программы и сократил в разы количество шейпов на листе, но это пока в визио.
из екселя пока открывать визио и создавать документ, но разумеется в нём нет заливок, по этому и вопрос
а может можно не создавать документ, а прямо в книге екселя можно создать вставку объекта visio и в нём уже отрисовывать в режиме онлайн так сказать?
хотя он лайн наверное не варик, но по нажатию кнопки же можно


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
концепция меняется
Цитата:
1. подключить к экселю библиотеку визио. в вба редакторе Tools -> References
2. надо тупо перенести содержимое кода из визио в эксель (то, что ты уже сделал)
3. в примере от Tumanov есть как прицепить визио к экселю
Код:
Set appVisio = CreateObject("visio.application")
Set docsObj = appVisio.Documents
добавить в код вышеуказанные строки в начале основного модуля
4. заменить в коде Application на appVisio
5. создать смарт-шейп с интерактивным изменением габаритов стеллажа в зависимости от значений ShapeData
6. сохранить в стенсил смартшейп
7. программно дергать на лист смарт-шейп
8. выдернутому смартшейпу передавать данные из эксель в ShapeData


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 15:03 
Не в сети
Новичок

Зарегистрирован: 09 ноя 2016, 12:04
Сообщений: 45
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
заливка конечно круто, но есть одно но, при изменении масштаба документа заливка уползает непонятно куда


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 15:16 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 15:40 
Не в сети
Новичок

Зарегистрирован: 09 ноя 2016, 12:04
Сообщений: 45
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
при создании заливки ты галочку не забыл поставить ?

плохо когда не знаешь, да ещё и забудешь :oops:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 16:03 
Не в сети
Новичок

Зарегистрирован: 09 ноя 2016, 12:04
Сообщений: 45
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Я пишу
Код:
L = Worksheets("запрос").Cells("F3").Value

а он говорит иди....

очевидно, что Я что то делаю не правильно...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 16:09 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
L = Worksheets("запрос").Cells("F3").Value замени на L = Worksheets("запрос").Range("F3").Value


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 16:23 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
А заливку получилось сделать масштабируемую?


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

Зарегистрирован: 09 ноя 2016, 12:04
Сообщений: 45
Использую Visio c: 2013
Очков репутации: 0

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

да, всё получилось, когда показали куда нажимать
сейчас бьюсь с тем как заставить параметры страницы нормальными делать... а то это ужос какой то
Спойлер: показать
Dim UndoScopeID1 As Long
UndoScopeID1 = appVisio.BeginUndoScope("Параметры страницы")
appVisio.ActivePage.Background = False
appVisio.ActivePage.BackPage = ""
' appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageDrawingScale).FormulaU = "25 mm"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOLineToNodeX).FormulaForceU = "0.0625 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOLineToNodeY).FormulaForceU = "0.0625 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOBlockSizeX).FormulaForceU = "0.125 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOBlockSizeY).FormulaForceU = "0.125 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOAvenueSizeX).FormulaForceU = "0.1875 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOAvenueSizeY).FormulaForceU = "0.1875 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOLineToLineX).FormulaForceU = "0.0625 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOLineToLineY).FormulaForceU = "0.0625 m"

appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageDrawScaleType).FormulaU = "3"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPrintProperties, visPrintPropertiesPageOrientation).FormulaU = "2"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageWidth).FormulaU = "7.425 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageHeight).FormulaU = "5.25 m"
appVisio.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageDrawSizeType).FormulaU = "0"
appVisio.EndUndoScope UndoScopeID1, True


Я всё пытаюсь макросом записать как Я объявляю страницу альбомной, потом говорю, что бумага как в принтере, масштаб 1:25 и единица измерения мм... в итоге у Меня висио каждый раз разное выдаёт ... в общем "стою на асфальте Я в лыжи обутый..."


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

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

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

Вот почему и говорят, что сначала надо сделать шаблон! (Не трафарет).
И создавать документ на основе этого шаблона. Тогда в документе все будет уже подготовлено. Останется только добавлять нужные шейпы.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 18:55 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
А так:
Код:
Sub MacroTest()
    With appVisio.ActivePage
    '    .Name = "СтраницаTest" ' свое имя страницы
        .Background = False ' не фоновая
    '    .Index = 1 ' будет первой
        With .PageSheet
            .CellsSRC(1, visRowPage, visPageWidth).FormulaU = "7425 mm"
            .CellsSRC(1, visRowPage, visPageHeight).FormulaU = "5250 mm"
            .CellsSRC(1, visRowPage, visPageScale).FormulaU = "1 mm"
            .CellsSRC(1, visRowPage, visPageDrawingScale).FormulaU = "25 mm"
            .CellsSRC(1, visRowPage, visPageDrawSizeType).FormulaU = "5"
            .CellsSRC(1, visRowPage, visPageDrawScaleType).FormulaU = "3"
            .CellsSRC(1, visRowPage, visPageShdwType).FormulaU = "1"
            .CellsSRC(1, visRowPage, 38).FormulaU = "2"
            .CellsSRC(1, visRowPrintProperties, visPrintPropertiesLeftMargin).FormulaU = "5 mm" ' Поля
            .CellsSRC(1, visRowPrintProperties, visPrintPropertiesRightMargin).FormulaU = "5 mm" ' Поля
            .CellsSRC(1, visRowPrintProperties, visPrintPropertiesTopMargin).FormulaU = "5 mm" ' Поля
            .CellsSRC(1, visRowPrintProperties, visPrintPropertiesBottomMargin).FormulaU = "5 mm" ' Поля
            .CellsSRC(1, visRowPrintProperties, visPrintPropertiesPageOrientation).FormulaU = "2" ' ориентация
        End With
    End With
End Sub


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 19:12 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
И насчет шаблона. Действительно надо делать. Там можно все настроить. Шрифты, линии, заливки и т. д. и т. п. Можно и макросы вставить. Можно рамку со штампом сразу вставить.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 19:57 
Не в сети
Новичок

Зарегистрирован: 09 ноя 2016, 12:04
Сообщений: 45
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Вот почему и говорят, что сначала надо сделать шаблон! (Не трафарет).
И создавать документ на основе этого шаблона. Тогда в документе все будет уже подготовлено. Останется только добавлять нужные шейпы.

Спасибо, так намного лучше и проще.

а как правильно заставить сохранять файл(название = дата +значение ячейки) в папку (мои документы/значение ячейки)?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 20:09 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
DArkadiy писал(а):
а как правильно заставить сохранять файл(название = дата +значение ячейки) в папку (мои документы/значение ячейки)?
примерно так
Код:
Const pt = "c:\Users\xXx\Documents\" ' путь к папке Мои документы
l = Worksheets(1).Range("F1").Value
pth = pt & l ' путь к подпапке
nm = Replace(Date, ".", "_") & l & ".vsd" ' имя файла
vd.SaveAs pth & "\" & nm


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 20:18 
Не в сети
Новичок

Зарегистрирован: 09 ноя 2016, 12:04
Сообщений: 45
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
примерно так
Код:
...
vd.SaveAs pth & "\" & nm


на последнюю строчку ругнулся и не сохранил


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: рисование в висио по команде из EXEL
СообщениеДобавлено: 10 ноя 2016, 20:28 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
а ты Const pt = "c:\Users\xXx\Documents\" так и оставил ? или подставил путь к своей папке ? Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 113 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

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



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

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


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

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