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

Форум по вопросам применения и программирования в Visio
Текущее время: 06 дек 2019, 20:59

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: VBA и .NET
СообщениеДобавлено: 15 ноя 2019, 17:45 
Не в сети
Постоянный участник

Зарегистрирован: 16 окт 2016, 12:41
Сообщений: 80
Использую Visio c: 2016
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Здравствуйте! Сразу скажу, что я ни разу не программист, и моя интуиция подсказывает мне, что вопрос мой наверное глупый, но не задать его я не могу. Почему в VBA с помощью CreateObject я могу создать некоторый объекты, которые "принадлежат" .NET, например CreateObject("System.Collections.SortedList"), а другие выдают ошибки и использовать их методы и свойства я не могу, например CreateObject("System.IO.Packaging.Package")?
Или я всё же я ошибаюсь и как-то можно всё это (https://docs.microsoft.com/ru-ru/dotnet ... mework-4.8) добро использовать VBA.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VBA и .NET
СообщениеДобавлено: 15 ноя 2019, 18:23 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3735
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
Цитата:
я ни разу не программист
как и 99.9% пользоватей данного форума
Цитата:
Почему в VBA с помощью CreateObject я могу создать некоторый объекты, которые "принадлежат" .NET
очевидно, что у vba урезанный функционал! пример с которым "фартануло", работает скорее всего из-за того что в vba поддерживаются коллекции. просто попали в пересекающиеся множество объектов, которые можно создать используя CreateObject в VBA и .Net.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VBA и .NET
СообщениеДобавлено: 15 ноя 2019, 19:39 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
Это потому что некоторые классы .NET объявлены как "ComVisible(true)" (видимые для скриптов и VBA)
В частности, класс System.Collections.SortedList - "видимый", а System.IO.Packaging.Package - нет.

Из VBA можно использовать только классы, которые были явно разрешены для использования в скриптах и VBA (т.е. имеющие ComVisible = true)

_________________
Инструменты для облегчения создания диаграмм, и статьи по Visio:
http://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VBA и .NET
СообщениеДобавлено: 15 ноя 2019, 19:44 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
Касаемо того, как надо делать если хочется использовать .NET из VBA.
Нужно сделать библиотеку на .NET (в ней можно использовать что угодно из арсенала .NET), и экспортировать из нее свой собственный публичный класс (который специально объявить как ComVisible). Потом в VBA добавить ссылку на свою библиотеку (Add Reference), будет нормальный автокомплит и никаких CreateObject.

C#
Код:
[ComVisible(true)]
public class MyCoolLib
{
   public Foo(int x) {}
}

VBA:
Код:
Set lib = new MyCoolLib
lib.Foo(42)

_________________
Инструменты для облегчения создания диаграмм, и статьи по Visio:
http://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VBA и .NET
СообщениеДобавлено: 16 ноя 2019, 12:03 
Не в сети
Постоянный участник

Зарегистрирован: 16 окт 2016, 12:41
Сообщений: 80
Использую Visio c: 2016
Очков репутации: 4

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


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

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



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

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


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

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