Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 15.08.2024
Сообщений: 8
Excel

Пользовательские типы данных как свойства объектов

18.09.2024, 15:58. Показов 2083. Ответов 20

Студворк — интернет-сервис помощи студентам
Добрый день!

Сел изучать Объекты и Классы VBA, не могу понять, что я делаю не так.
Создал модуль класса:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'Class Module: PrimitiveCircle
 
Public Radius As Double
Private CircleCenter As Coordinate
Public Visible As Boolean
 
Public Property Let COG(dValue As Coordinate)
    CircleCenter = dValue
End Property
 
Public Property Get COG() As Coordinate
    COG = CircleCenter
End Property
 
Public Property Get TestProp() As Double
    TestProp = COG.x * COG.y
End Property
Создал процедуру в обычном модуле:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Option Explicit
 
Public Type Coordinate
    x As Double
    y As Double
End Type
 
Public Sub Test2()
    Dim myCircle As PrimitiveCircle
    Dim Coord As Coordinate
    
        Set myCircle = New PrimitiveCircle
        myCircle.Radius = 100
        Coord.x = 200
        Coord.y = 300
        myCircle.COG = Coord
        myCircle.Visible = True
        
        MsgBox myCircle.COG.x
        MsgBox myCircle.COG.y
        MsgBox myCircle.TestProp
        
End Sub
В окне WATCHES Переменная CircleCenter имеет тип Coordinate, открывается выпадающий список из двух переменных типа: x=200 и y=300.
В то же время Свойство COG также имеет тип Coordinate, но не имеет никакого значения. Причем, по факту, значение вычисляется, когда вызываешь его, например, через MsgBox или через другое Свойство TestProp.

Пробовал напрямую отправлять переменную Coordinate в объект, объявляя COG как Public переменную в модуле класса - ругается.

Вопрос - как сделать, чтобы COG отображался в Watches также, как сейчас CircleCenter? Можно ли исключить дублирование информации, которое есть сейчас (CircleCenter и COG)? Может ли свойство класса быть пользовательским типом данных?

P.S.: Не судите, пожажалуйста, строго за, возможно, глупый вопрос. Вроде много уже чего поделал в VBA, но Объекты только начал изучать, и пока тяжеловато с пониманием их логики.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.09.2024, 15:58
Ответы с готовыми решениями:

Предопределенные типы переменных. Простые типы данных. Пользовательские типы данных
Лабораторная работа №6. Тема: Предопределенные типы переменных. Простые типы данных. Пользовательские типы данных.(лекция) ...

Как создать пользовательские типы данных?
Подскажите, пожалуйста, как создать пользовательские типы данных в C#? Такие типы данных формируются только на основании классов? Если...

Пользовательские типы данных
Помогите пожалуйста очень нужно решить задачу..... Дано type число = 1..31; месяц = 1..12; год = 1..2000; дата = record ч :...

20
510 / 164 / 22
Регистрация: 04.10.2015
Сообщений: 649
22.09.2024, 18:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от testuser2 Посмотреть сообщение
в классах вместо Public можно смело везде использовать Friend.
Век живи - век учись
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2024, 18:28

Пользовательские типы данных
Не работает функция для поиска товаров по неполному названию и функция для поиска всех товаров заданного изготовителя. Выдает ошибку,...

Пользовательские типы данных
Пользовательский тип данных ( class A {...}; ), сделать так, чтобы создавать объекты можно было только в куче? A* a = new A(...); ...

Пользовательские типы данных
Реализовать программу, которая принимает список овощей с ценой без НДС, количеством единиц, а также типом товара с точки зрения вычисления...

Пользовательские типы данных
Схожая задача... Нужно ввесть Тип Товара, название, цену, количество. Затем получить общий чек с налогом. Помогите понять где я...

Пользовательские типы данных
написать на языке С программу вычисления комплексного значения функции f (z) и вывести на экран действительную и мнимую части значения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru