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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Объект Excel на странице документа Visio
СообщениеДобавлено: 28 июн 2015, 22:29 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 28 июн 2015, 22:23
Сообщений: 36
Использую Visio c: 2010
Уровнь квалификации: Программирование
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Привет.
Кто-нибудь пытался добраться до вставленного в Visio объекта Excel?
По сути объект excel вставляется как шэйп к свойству которого объект можно обращаться как к книге.
Код:
dim wb as excel.workbook
dim vs as visio.shape
set vs = thisdocument.shapes("excelsheet")
set wb = vs.object
и все бы ничего, если бы не решил проверить такой код на машине с windows 8, где стоит 32 разрядная версия Excel 2010.
Последняя строка кода дает ошибку " - типа библиотека не подключена, хотя в референс ms excel 14 object library - включено.

Танцы, включения, отключения референс, ничего не дают. Преобразования excel объекта в разные версии средствами visio тоже не помогают.

Кто подкинет идею?
P.S. На машине,где создавался excel объект офис 2007 (т.е. в референс ms excel 12 object library).
кросс-пост на sql.ru


Последний раз редактировалось Surrogate 29 июн 2015, 12:24, всего редактировалось 1 раз.
добавлен кросс-пост


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 28 июн 2015, 23:11 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
добро пожаловать, Bobgos!
Surrogate на форуме sql.ru в сообщении 17381285 писал(а):
gsv1 писал(а):
А наш тред про Visio кажется самый внушительный и содержательный на все sql.ru !
дык здесь же не профильный русский форум по визио
Прошу прощения за ту кривую ссылку на данный форум Изображение


Пишу с телефона. Нет компа под рукой
1. Шейп не принадлежит коллекции thisdocument. Может входить в Page или ActiveWindow.Selection.
2. Не уверен что у шейпа есть свойство Object

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 29 июн 2015, 00:20 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Surrogate!
У меня вот так сработало:
Код:
dim wb as excel.workbook
dim vs as visio.shape
set vs = ActiveWindow.Selection(1) ' На листе выделен вставленный объект Excel
set wb = vs.object
Библиотеку Microsoft Excel 14.0 Object Library конечно предварительно подключил.
Я смог увидеть содержимое ячеек на любом листе(их было 3) вставленного объекта Excel. Смотрел через окно Locals Window. Не ожидал что вставленный объект Excel хранит в себе целую книгу xls со всеми причиндалами. А вот что посоветовать Bobdogs - не знаю.
p.s. У шейпа есть свойство Object.

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 29 июн 2015, 02:10 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Bobgos писал(а):
Привет.
Кто-нибудь пытался добраться до вставленного в Visio объекта Excel?
По сути объект excel вставляется как шэйп к свойству которого объект можно обращаться как к книге.
Код:
dim wb as excel.workbook
dim vs as visio.shape
set vs = thisdocument.shapes("excelsheet")
set wb = vs.object
Ты не написал какая ошибка возникает (сообщение об ошибке).

По идее все должно работать, скорее всего у тебя какая-то проблема с утановкой офиса на той машине.
Референс на Excel IMHO ни при чем, т.е. приведенный выше код должен работать даже без всяких референсов на Excel вообще (если закомментить сточку Dim wb as Excel.Workbook).

Файл в студию,
или переставляй офис на той машине.
Или у тебя какая-то проблема с безопасностью (если комп в домене, спрашивай админа - может он какую гайку закрутил, есть такие).

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 29 июн 2015, 22:22 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 28 июн 2015, 22:23
Сообщений: 36
Использую Visio c: 2010
Уровнь квалификации: Программирование
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
nbelyh писал(а):
Bobgos писал(а):
Привет.
Кто-нибудь пытался добраться до вставленного в Visio объекта Excel?
По сути объект excel вставляется как шэйп к свойству которого объект можно обращаться как к книге.
Код:
dim wb as excel.workbook
dim vs as visio.shape
set vs = thisdocument.shapes("excelsheet")
set wb = vs.object
Ты не написал какая ошибка возникает (сообщение об ошибке).

По идее все должно работать, скорее всего у тебя какая-то проблема с утановкой офиса на той машине.
Референс на Excel IMHO ни при чем, т.е. приведенный выше код должен работать даже без всяких референсов на Excel вообще (если закомментить сточку Dim wb as Excel.Workbook).

Файл в студию,
или переставляй офис на той машине.
Или у тебя какая-то проблема с безопасностью (если комп в домене, спрашивай админа - может он какую гайку закрутил, есть такие).

Файл прикрепил. Попробую поставить 2007, но хотелось бы проверить на другой машине с 2010.
При нажатии кнопки export нужно экспортировать данные в Excel (внешний вновь создаваемый файл), а также обновить список во встроенной Excelsheet.

Если есть 2010 офис просьба отписаться работает ли.


Вложения:
Комментарий к файлу: Пример файла. На перво странице кнопка Export
ExcelData_example.vsd [310.5 Кб]
Скачиваний: 141
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 29 июн 2015, 22:23 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 28 июн 2015, 22:23
Сообщений: 36
Использую Visio c: 2010
Уровнь квалификации: Программирование
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
nbelyh писал(а):
Файл в студию,
или переставляй офис на той машине.
Или у тебя какая-то проблема с безопасностью (если комп в домене, спрашивай админа - может он какую гайку закрутил, есть такие).
комп не в домене, но единственный в рабочей группе с win8. Открываю локально на ПК.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 29 июн 2015, 22:27 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 28 июн 2015, 22:23
Сообщений: 36
Использую Visio c: 2010
Уровнь квалификации: Программирование
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Пишу с телефона. Нет компа под рукой
1. Шейп не принадлежит коллекции thisdocument. Может входить в Page или ActiveWindow.Selection.
2. Не уверен что у шейпа есть свойство Object
Surrogate, рад встретиться.
п.2 -разобрались.
п.1 Сорри писал по памяти


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 29 июн 2015, 22:34 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 28 июн 2015, 22:23
Сообщений: 36
Использую Visio c: 2010
Уровнь квалификации: Программирование
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Shishok писал(а):
Библиотеку Microsoft Excel 14.0 Object Library конечно предварительно подключил.
Я смог увидеть содержимое ячеек на любом листе(их было 3) вставленного объекта Excel. Смотрел через окно Locals Window. Не ожидал что вставленный объект Excel хранит в себе целую книгу xls со всеми причиндалами. А вот что посоветовать Bobdogs - не знаю.
p.s. У шейпа есть свойство Object.
не только в Locals windows, но и все vba возможности Excel доступны.
Вот только непонятки с именем файла xls. Его как-бы нет. Странно. Книга есть, файла нет.

А у меня привычка однозначно обращаться к файлу xls. К тому же шэйп (даже если это лист excel) экселевских функций vba не понимает.
В файле, который приложил к своему посту экспорт работает во встроенный лист ексел.
Можно было бы его просто сохранить во внешнюю книгу при экспорте, а приходтся делать дважды- писать в объект Эксель (шейп визио) и еще раз экспортировать в новую книгу.
Кстати CreateObject.Excel тоже на машине с 2010-м офисом не работает. (см. пример)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 29 июн 2015, 23:05 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 28 июн 2015, 22:23
Сообщений: 36
Использую Visio c: 2010
Уровнь квалификации: Программирование
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Bobgos писал(а):
Файл в студию,
кажись косячный файл выложил - он на внешние макросы ссылался. Прикрепил заново.
Заодно NameU поправил у некоторых шэйпов. А то неправильно работала функция изменения данных в EtName при попытке изменения текста шэйпа типа Procees. Там кстати тоже трабл. но это мелочи...
Вложение:
ExcelData_example.vsd [319.5 Кб]
Скачиваний: 152


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 29 июн 2015, 23:27 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
У меня вроде все работает (см. скриншот).
Т.е. shape.object вполне себе отрабатывает (Excel 2013). Может у тебя VBA в Excel как-то заблокирован?
Попробуй че-нибудь на VBA в самом экселе написать.

Самое лобовое решение - установить все заново с настройками по умолчанию.

Да, в файл тоже записывается, если поменять на строчку имеющюу смысл, т.е. написать

objeWS.SaveAs ("C:\tmp.xls")
ws.SaveAs "C:\zzz\tmp.xls"

В корень диска винда может не позволять файлы фигачить (не уверен как в какой системе по умолчанию), может в этом дело.


Вложения:
6-29-2015 9-12-01 PM.png
6-29-2015 9-12-01 PM.png [ 29.84 Кб | Просмотров: 1233 ]

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 30 июн 2015, 00:01 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 28 июн 2015, 22:23
Сообщений: 36
Использую Visio c: 2010
Уровнь квалификации: Программирование
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
nbelyh писал(а):
У меня вроде все работает (см. скриншот).
Т.е. shape.object вполне себе отрабатывает (Excel 2013). Может у тебя VBA в Excel как-то заблокирован?
Попробуй че-нибудь на VBA в самом экселе написать.

Самое лобовое решение - установить все заново с настройками по умолчанию.

Да, в файл тоже записывается, если поменять на строчку имеющюу смысл, т.е. написать

objeWS.SaveAs ("C:\tmp.xls")
ws.SaveAs "C:\zzz\tmp.xls"

В корень диска винда может не позволять файлы фигачить (не уверен как в какой системе по умолчанию), может в этом дело.

Спасибо, что поверил. А винда какая стоит. Может дело в том, что win8?
В екселе макросы включаются, работают. Установлен
И ексел 2007…, но библиотека ms exel 12.0 obj... Не появилась в референс visio. Даже когда browse указал путь к офисе12 excel.exe. видать система кривая - однако ПК не администрирую. Использовал для теста и напоролся. Вот.

предлагаю тему закрыть в связи с отсутствием состава преступления у визио.
А отMS все равно устойчивости ждать не приходится.

ВСЕМ БОЛЬШОЕ СПАСИБО

п.с. если все же кто-то разьяснит как бороться с подобными траблами - пишите. Вдруг кому поможет.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 30 июн 2015, 14:18 
Не в сети
Content manager
Content manager
Аватара пользователя

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

А у меня привычка однозначно обращаться к файлу xls. К тому же шэйп (даже если это лист excel) экселевских функций vba не понимает.
В файле, который приложил к своему посту экспорт работает во встроенный лист ексел.
дело в том, что копия файла исходника как оле-объект располагается на листе visio
Изображение

Изображение
связи между исходным файлом и его копией вроде нет.

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Объект Excel на странице документа Visio
СообщениеДобавлено: 01 июл 2015, 22:36 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 28 июн 2015, 22:23
Сообщений: 36
Использую Visio c: 2010
Уровнь квалификации: Программирование
Очков репутации: 1

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

Я добавлял объект ексел как новую книгу. Т.е не было исходники. А на других ПК обьект xls можно открыть, изменить. Вобщем работать, как и с книгой. Только у этой книги получается нет имени. И vba экселевский как с книгой работает не полностью.
Мне бы эту книгу сохранить в нужном месте. А приходится листами в новую переносить. :(
Даже не листами однако .,. Только данные через массивы. Вобщем жуть.


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

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



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

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


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

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