Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Внешняя программа для Visio 
:(
    Опции темы
Eddik86
Дата 24.6.2009, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Задача состоит в следующем. Имеется excel файл,в нем одномерный массив.Необходимо передать данные массива в  Visio и положить в нужный квадратик.

Код

Dim appObj As Visio.Application
Dim stnObj As Visio.Document
Dim pagsObj As Visio.Document 
Dim pagObj As Visio.Page 
Sub Progr_01()
 
Const D1 = "ItemFromID(68)"
Dim CellValue As String
Dim CellValue1 As String
Dim Y1 As Integer

Set appObj = New Visio.Application
Set stnObj = appObj.Documents.Open("C:\Documents and Settings\eddik\Рабочий стол\Макрос\Пример\Arrow.vss")
Set pagsObj = appObj.Documents.Open("C:\Documents and Settings\eddik\Рабочий стол\Макрос\Пример\control.vsd")
    
' Авангард
Макрос1 "E2" 'Авангард ВМ-1Т-10 U
End Sub



Sub Макрос1(CellValue)
Dim vsoChar1 As Visio.Characters
Dim Text1 As String
Set vsoChar1 = Application.ActiveWindow.Page.Shapes.ItemFromID(68).Characters
Text1 = Range(CellValue).Text
vsoChar1.Text = Text1
End Sub


В этом примере я пытался передать значение ячейки Е2 объекту ItemFromID(68),но есть ошибка в этой строке
Код

Set vsoChar1 = Application.ActiveWindow.Page.Shapes.ItemFromID(68).Characters
 
Подскажите как исправить!
PM MAIL   Вверх
RockClimber
Дата 24.6.2009, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Я так понимаю, что макрос выполняется в Excel?
Тогда в строчке 
Код
Set vsoChar1 = Application.ActiveWindow.Page.Shapes.ItemFromID(68).Characters

Application - это имеется ввиду Excel, а должен быть Visio.
То есть Application - это то приложение, в котором выполняется макрос.
Нужно во вторую функцию как-то передать ссылку на переменную appObj из первой функции (это и будет приложение Visio).
То есть как-то так:
Код

Dim appObj As Visio.Application
' то, что идет дальше в коде из первого поста, можно оставить как есть
... 

' 
Макрос1 "E2", appObj  'передали ссылку на приложение Visio
End Sub

Sub Макрос1(CellValue as string, appObj As Visio.Application)
Dim vsoChar1 As Visio.Characters
Dim Text1 As String
Set vsoChar1 = appObj.ActiveWindow.Page.Shapes.ItemFromID(68).Characters ' вот теперь мы ссылаемся на Visio 
Text1 = Range(CellValue).Text
vsoChar1.Text = Text1
End Sub



--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
Eddik86
Дата 24.6.2009, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Огромное Спасибо!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.2854 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.