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

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 13:10

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


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


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Как скопировать страницу целиком?
СообщениеДобавлено: 10 ноя 2016, 12:42 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Сделай шаблон (.vst), настрой его как надо и вставь туда макрос. И открывай его. Будет пустой документ с макросом.

_________________
GitHub
Yandex-диск с набором полезных утилит


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Alex_ST писал(а):
чтобы она была доступна для любых открытых файлов, как сделано в Excel с его Personal.xls
я в последнее время все чаще размещаю свои макросы не в визио, а в экселе используя раннее связывание. и ничего не мешает из под экселя программно управлять документом визио Изображение

сделать add-in для Visio 2003 сложнее

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


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

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

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
А представленная здесь
http://visio.artberg.ru/gum/1/ShapeComparer_ru.htm
функция дублирования листов не помогает?
Что-то я не понял. Вроде бы написано, что стенсил бесплатный. А пока на странице https://gumroad.com/l/EjDU не введёшь сумму пожертвования, скачивать не даёт…
Хотя, честно говоря, из всего трафарета мне нужно только копирование страницы в новую в этом или в другом открытом документе, как это сделано в Excel.
Может быть кто-нибудь просто код процедуры выложит, чтобы можно было подсмотреть/поучиться, как это делают?
Просто те макросы копирования в новый лист, которые я когда-то написал, страдают так и не исправленным мною самостоятельно главным недостатком: съезжают скопированные объекты/группы при вставке их на новый лист.

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Alex_ST писал(а):
не введёшь сумму пожертвования, скачивать не даёт…
там можно постатить сумму пожертвования 1 цент, главное ненулевое значение Изображение
Alex_ST писал(а):
Может быть кто-нибудь просто код процедуры выложит, чтобы можно было подсмотреть/поучиться, как это делают?
или может автор (Tumanov) скинет тебе в личку ?
Alex_ST писал(а):
Просто те макросы копирования в новый лист, которые я когда-то написал, страдают так и не исправленным мною самостоятельно главным недостатком: съезжают скопированные объекты/группы при вставке их на новый лист.
я обычно после группировки фиксировал размеры и положение группы с помощью функции GUARD(), прописывал GUARD в формулу. потом вставлял на новый лист и разгруппировывал

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


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

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

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

_________________
GitHub
Yandex-диск с набором полезных утилит


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

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

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
я в последнее время все чаще размещаю свои макросы не в визио, а в экселе используя раннее связывание. и ничего не мешает из под экселя программно управлять документом визио
Не понял, Саша, поясни.
Создать макрос в Excel'е не проблема. И вызвать этот макрос из проекта VBA Visio тоже можно.
Но ведь объектные модели абсолютно разные и как объект Visio можно передавать на обработку в VBA Excel?
А события?
Да и всё равно это костыли для увечного.

А по поводу 1 цента за программу, так это, конечно, не жалко, но ведь всё равно это НЕ БЕСПЛАТНО и, самое, главное, нужно будет ещё где-то засветить свой электронный кошелёк...

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Alex_ST писал(а):
Создать макрос в Excel'е не проблема. И вызвать этот макрос из проекта VBA Visio тоже можно.
Но ведь объектные модели абсолютно разные и как объект Visio можно передавать на обработку в VBA Excel?
Алексей, мы же используем раннее связывание ! кстати и с поздним связыванием все нормально работает, есть нюанс с константами визио.
После указания в референсах Visio, Excel знает за объектную модель Visio.
Surrogate в сообщении #10125 писал(а):
2. надо тупо перенести содержимое кода из визио в эксель
3. в примере от Tumanov есть как прицепить визио к экселю
Код:
Set appVisio = CreateObject("visio.application")
Set docsObj = appVisio.Documents
добавить в код вышеуказанные строки в начале основного модуля
4. заменить в коде Application на appVisio
и ему не надо ничего про значения констант передавать. при позднем связывании уже придется вместо штатных констант передавать их значения
Код:
Set appVisio = CreateObject("visio.application")
Set docsObj = appVisio.ActiveDocument
Set vsoPage1 = docsObj.Pages.Add
vsoPage1.PageSheet.CellsSRC(visSectionObject, visRowPageLayout, visPLOSplit).FormulaForceU = "1"
под параметрами в данном случае я имею в виду visSectionObject, visRowPageLayout, visPLOSplit

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
А по поводу 1 цента за программу, так это, конечно, не жалко, но ведь всё равно это НЕ БЕСПЛАТНО и, самое, главное, нужно будет ещё где-то засветить свой электронный кошелёк...

А это для меня новость.
При тестировании спокойно указывал 0 и оно работало. Правда, это уже давно было, может что изменилось...
Нужно будет проверить.
---------------------------------
Проверил. При нуле работает. Светить нужно только email. Так на него потом ссылка поступает - без этого никак.


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

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

Добавить очки репутацииУменьшить очки репутации
По поводу копирования тонкость была в том, что при копировании через буфер некоторые формулы заменяются значениями. То есть на первый взгляд страничка может быть очень похожа, но потом начинает вести себя совсем не так, как прототип. Вот поэтому и пришлось писать макрос для получения абсолютной копии.


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

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

Добавить очки репутацииУменьшить очки репутации
А... Я-то привык использовать позднее связывание чтобы не было проблем с референсами при распространении процедур на форумах...
Не люблю я раннее связывание ужасно!
Хотя этот подход никто не мешает попробовать применить и при позднем связывании.
Разница будет только в добавлении строк открытия/закрытия объекта
Код:
With CreateObject("Visio.Application")

End With

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


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

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

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Проверил. При нуле работает. Светить нужно только email. Так на него потом ссылка поступает - без этого никак.
Я тоже проверил. Действительно, достаточно засветить только мыло.
И хоть на него ничего так и не пришло :P , но скачать после этого удалось.
Жаль, что проект запоролен. Хотелось посмотреть, что и как знающие люди делают.
(Терпеть не могу юзать процедуры VBA , сначала не разобрав их и не зная КАК они работают)

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


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Жаль, что проект запоролен.

Ну так, специально :)
А то все всё увидят, включая все глупости :)
И потом, я собирался попозже этот нолик отменить. Чтобы остались только значащие цифры. Но это желание почти пропало, потому как именно к этому трафарету интереса практически нет.
---
P.S. Текст вот в этом файлике.


Вложения:
WordResult.doc [62 Кб]
Скачиваний: 448
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как скопировать страницу целиком?
СообщениеДобавлено: 10 ноя 2016, 15:11 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
мой вариант. только что вставил этот код в эксель, потестил - полет нормальный
Код:
Sub CopyVisioPage()
Dim ds$, ps$, pw$, ph$
Dim va As Visio.Application
Dim vd As Visio.Document
Set va = GetObject(, "visio.application")
Set vd = va.ActiveDocument
Dim np As Visio.Page, apage As Visio.Page
Dim pinx As String, piny As String
Dim sl As Visio.Selection
Dim gr As Visio.Shape
va.ActiveWindow.Page = vd.Pages.ItemU("Ñ7") ' xxx èìÿ ñóùåñòâóþùåãî ëèñòà
Set apage = va.ActivePage
ds = apage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageDrawingScale).FormulaU
ps = apage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageScale).FormulaU
pw = apage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageWidth).FormulaU
ph = apage.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageHeight).FormulaU
va.ActiveWindow.SelectAll
Set sl = va.ActiveWindow.Selection
Set gr = sl.Group
pinx = gr.Cells("Pinx")
pinx = "guard(" & pinx & ")"
piny = gr.Cells("PinY")
piny = "guard(" & piny & ")"
gr.Cells("Pinx").Formula = pinx
gr.Cells("Piny").Formula = piny
gr.Copy
Set np = vd.Pages.Add
SetPageSettings np, ds, ps, pw, ph
va.ActiveWindow.Selection.Ungroup
Set gr = Nothing
Set sl = Nothing
Set np = Nothing
Set apage = Nothing
Set vd = Nothing
Set va = Nothing
End Sub
Sub SetPageSettings(vso1 As Visio.Page, ds1 As String, ps1 As String, pw1 As String, ph1 As String)
vso1.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageDrawingScale).FormulaU = ds1
vso1.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageScale).FormulaU = ps1
vso1.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageWidth).FormulaU = pw1
vso1.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageHeight).FormulaU = ph1
vso1.Paste
End Sub
Alex_ST в личке писал, что у них какой-то дичайший антивирус стоит. не дает качать документы с макросом.
поэтому выдаю код в текстовом виде. Код в тексте ворде тоже подходит

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


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

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

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Код:
…' xxx èìÿ ñóùåñòâóþùåãî ëèñòà
Александр,
я смотрю у тебя до сих пор не пофиксен баг работы буфера обмена, возникший ещё при русификации VISTA живущий, похоже, до сих пор: если скопировать в буфер обмена текст, содержащий символы кириллицы, не переключив перед копированием раскладку клавиатуры в RUS, то после вставки скопированного текста в ответ форума или "блокнот" вместо кириллических букв будут "кракозябры" типа:
Äîïîëíèòåëüíûå ñâåäåíèÿ ñì. â çàìåòêàõ î âûïóñêå
Иногда "кракозябры" вылезают также вместо русских букв в окнах некоторых программ.
Всяческие патчи реестра помогают далеко не всегда.
Общаться на форумах по VBA с этим багом очень не удобно.
Вот РАДИКАЛЬНЫЙ СПОСОБ, помогающий практически в 100% случаев избавиться от "кракозябр":
1. В папке C:\Windows\system32 удаляем файл c_1252.nls
2. Там же делаем копию файла c_1251.nls и переименовываем её в c_1252.nls
3. Перезагружаемся.

Главная проблема - удалить имеющийся системный файл c_1252.nls , т.к. Винда не даёт это сделать даже администратору
Удалить файл можно с помощью программы Unlocker

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


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

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

Добавить очки репутацииУменьшить очки репутации
Твою процедурку завтра покручу во всех позах. На вскидку не пойму, как ты указываешь документ Visio, в котором процедура, запущенная в Excel, будет дуплицировать страницы.
Всё-таки в упор не понимаю, какой смысл выполнять в VBA Excel процедуру, копирующую листы книги Visio, когда там есть свой VBA.
Каких специфических методов и объектов, имеющихся в VBA Excel, тебе не хватает в VBA Visio ?
Или у тебя просто по умолчанию Excel всегда открыт и ты за макросами в него постоянно прыгаешь из Visio ?

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Alex_ST писал(а):
не пофиксен баг работы буфера обмена
пару лет назад я применял твой радикальный способ ! спасибо за него !
был у меня период, когда нужно было "задокументировать" большой объем кода в ворд. очень пригодилось !!!
потом айтишники взяли ноут добавить оперативки. заодно систему почистили, и снова всё вернулось. руки не доходят снова пройти по этому радикальному пути Изображение. обхожусь по рабоче-крестьянски - вставляю сначала код из VBA IDE в шейп Visio, а из него уже без крокозябр в любое место. сегодня комментарий был в одной строке, я забыл эту промежуточную операцию произвести…

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Alex_ST писал(а):
Каких специфических методов и объектов, имеющихся в VBA Excel, тебе не хватает в VBA Visio ?
в визио всего хватает. причины хранить код в эксель следующие
1. код хранится в персональной книге макросов, считай всегда под рукой !
2. кода нет в документе визио, и можно безбоязненно отдавать документ на сторону.
чтоб код - моя интеллектуальная собственность, утечет наружу !
Alex_ST писал(а):
Или у тебя просто по умолчанию Excel всегда открыт и ты за макросами в него постоянно прыгаешь из Visio ?
все макросы запускаю из под экселя
по долгу службы© мне часто приходится генерить тонны исполнительной документации в визио, исходные данные для которой хранятся в книге эксель. макрос создает документ визио из шаблона, заполняет поля в документ-шите, дропает в нужных местах нужные мастера, сохраняет этот документ в нужное место, с нужным именем. таких файлов нужно сгенерить сотни, иногда тысячи. мне кажется для этой задачи хранение кода в экселе - оптимальный вариант. возможно я не прав, если что киньте в меня камень !
Alex_ST писал(а):
На вскидку не пойму, как ты указываешь документ Visio, в котором процедура, запущенная в Excel, будет дуплицировать страницы.
1. и так эксель то у меня считай всегда открыт.
2. открываю документ визио в котором надо накуролесить
3. запускаю код в эксель
Код:
Set va = GetObject(, "visio.application") ' получаю открытое приложение Визио
Set vd = va.ActiveDocument ' получаю активный документ визио

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


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

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
Surrogate
вместо экселя можно использовать VBScript тогда. вроде логичнее будет в твоем случае.


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
9rey писал(а):
вместо экселя можно использовать VBScript
гемморойно. тогда придется VBScript'ом извлекать данные из Экселя и загонять их в визио.
Surrogate писал(а):
исходные данные для которой хранятся в книге эксель. макрос создает документ визио из шаблона, заполняет поля в документ-шите, дропает в нужных местах нужные мастера, сохраняет этот документ в нужное место, с нужным именем
имя и путь документа берется из экселя, значения полей и какие из мастеров дропать и сколько раз тоже хранится в экселе!
никакого выигрыша, кроме того что код не хранится в визио.
Surrogate писал(а):
при позднем связывании уже придется вместо штатных констант передавать их значения
в VBScript так же придется вместо констант визио искать их значения и подставлять в код. а в экселе с ранним связыванием на эту тему можно не морочиться…

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как скопировать?
СообщениеДобавлено: 30 янв 2020, 15:11 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 117
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
vak1 писал(а):
Тут можно так же?
штатными средствами Visio2007 это невозможно.
в визио 2013 вроде это возможно (сам не пробовал)
Создание дубликата страницы
Щелкните правой кнопкой мыши вкладку страницы, которую необходимо скопировать.
Выберите пункт Дублировать.
В результате будет создана копия выбранной страницы.

Применяется к: Visio профессиональный 2016, Visio стандартный 2016, Visio 2013, Visio профессиональный 2013

Добрый день. Однако есть желание оживить тему.
Написал макрос по совету Microsoft макрос копирующий все страницы из одного документа в другой, но похоже что зря)))
Проблема в следующем:
Я использую функцию SHAPETEXT() которая ссылается на шейп по ID (по другому вроде не умеет) и берет у него TheText, но при вставке указанным выше методом ID всех фигур меняются (согласно координатам от центра?) и следовательно все содержимое функций исчезает. Пока придумал только два решения - вставка шейпов по очереди согласно их ID или восстановление полей SHAPETEXT() согласно изменившихся ID у шейпов. Но то и другое это цикл в цикле и это будет минут 10 обрабатываться для всего объема документов для объединения.
Посему возникли вопросы:
1. Как без перебора узнать ID шейпа по его имени (Shape.Name)?
2. Как вставить выделенные шейпы без изменения их ID? Ни один флаг метода Page.Paste не помог.

Очень странно что в Visio невозможно скопировать страницу в неизменном виде как в Excel :wall:


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

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



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

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


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

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