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

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 02:41

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 12:44 
Не в сети
Новичок

Зарегистрирован: 23 июн 2015, 07:21
Сообщений: 20
Использую Visio c: 2013
Очков репутации: 0

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

Подскажите, как более удобно/лаконично инициализировать двухмерный массив. Что

У меня:
Код:
    Dim strColor(1, 1) As String
    strColor(0, 0) = "красный"
    strColor(0, 1) = "FF0000"
       
    strColor(1, 0) = "зеленый"
    strColor(1, 1) = "00FF00"
Хотелось бы как-то так. Вроде в MSDN указано, что так надо, выскакивает ошибка:
Код:
Dim strColor = {{"красный", "FF0000"}, {"зеленый", "00FF00"}}


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

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 13:04 
Не в сети
Новичок

Зарегистрирован: 23 июн 2015, 07:21
Сообщений: 20
Использую Visio c: 2013
Очков репутации: 0

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


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

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 13:15 
Не в сети
Новичок

Зарегистрирован: 23 июн 2015, 07:21
Сообщений: 20
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
https://msdn.microsoft.com/ru-ru/library/wak0wfyt.aspx


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 13:16 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 12 май 2012, 15:16
Сообщений: 122
Очков репутации: 13

Добавить очки репутацииУменьшить очки репутации
если вопрос просто по синтаксису, то всё ровно, ну сабов не хватает...
вот так всё присваивается, проверенно:
Код:
Dim strColor(1, 1) As String
Sub sss()


strColor(0, 0) = "красный"
strColor(0, 1) = "FF0000"

strColor(1, 0) = "зелёный"
strColor(1, 1) = "00FF00"
End Sub


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

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

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Abra07 писал(а):
https://msdn.microsoft.com/ru-ru/library/wak0wfyt.aspx
это к VB имеет отношение, но не к VBA!!!

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 13:30 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 12 май 2012, 15:16
Сообщений: 122
Очков репутации: 13

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


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

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 13:36 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
да, в VBA все по-спартански.
разве что можно задать через Array одномерный массив (через запятую), а потом раскидать его в двумерный массив через цикл. если оно того стоит конечно.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 13:38 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
TC хотел в одну строчку объявить весь массив

А если объявить Array, а потом конвертировать?
Типа так:
Код:
    a = Array("красный", "FF0000", "зеленый", "00FF00")
    For i = 0 To UBound(a) Step 2
        strColor(i \ 2, 0) = a(i): strColor(i \ 2, 1) = a(i + 1)
    Next


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 13:38 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Оп! Опоздал :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 13:45 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Можно вот так:

Код:
Dim Arr, N1 as String, N2 as String
Arr = Array(Array("Вася", "Коля", "Петя"), Array("Маша", "Лида", "Таня"), Array("Вилка", "Ложка", "Тарелка")) ' Получаем двумерный массив, размерностью 3х3
N1 = Arr(0)(0)
N2= Arr(0)(1)

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
конкретно для этого примера может не самый оптимальный путь использовать массив Изображение
Surrogate в сообщении #6801 писал(а):
на форуме visguy недавно была интересная ветка связанная с hex: FillForegnd colour in hex, там я немного прикоснулся к китайской грамоте Изображение
проще конвертировать значения…

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 14:05 
Не в сети
Новичок

Зарегистрирован: 23 июн 2015, 07:21
Сообщений: 20
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Конечно, можно по разному, особенно для динамических данных, просто в форме
Код:
Dim strColor = {{"красный", "FF0000"}, {"зеленый", "00FF00"}}
более наглядно, легче заполнять/инициализировать литералами.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Синтаксис VBA
СообщениеДобавлено: 30 июн 2015, 14:07 
а вы уверены, что VBA поддерживает литералы ?


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

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



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

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


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

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