Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Является ли диаграмма объектом в ООП для VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Является ли диаграмма объектом в ООП для VBA
asmel Дата: Суббота, 26.08.2017, 15:01 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
в пристыкованном файле имеется диаграмма. Почему в VBAProject диаграмма никак не отображена?
К сообщению приложен файл: pelena.xls (81.5 Kb)


Сообщение отредактировал asmel - Суббота, 26.08.2017, 15:25
 
Ответить
Сообщениев пристыкованном файле имеется диаграмма. Почему в VBAProject диаграмма никак не отображена?

Автор - asmel
Дата добавления - 26.08.2017 в 15:01
AndreTM Дата: Суббота, 26.08.2017, 16:18 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
То, что вы показываете - это VBE (объект Application.VBE).

А диаграммы - это объекты коллекции Workbooks().Worksheets().ChartObjects
К сообщению приложен файл: 8403547.png (87.1 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Суббота, 26.08.2017, 16:19
 
Ответить
СообщениеТо, что вы показываете - это VBE (объект Application.VBE).

А диаграммы - это объекты коллекции Workbooks().Worksheets().ChartObjects

Автор - AndreTM
Дата добавления - 26.08.2017 в 16:18
asmel Дата: Суббота, 26.08.2017, 18:14 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM,
Значит, если я в экселе создаю график через

то в VBA редакторе я этот объект никак не увижу и никак не смогу на него воздействовать?
 
Ответить
СообщениеAndreTM,
Значит, если я в экселе создаю график через

то в VBA редакторе я этот объект никак не увижу и никак не смогу на него воздействовать?

Автор - asmel
Дата добавления - 26.08.2017 в 18:14
nilem Дата: Суббота, 26.08.2017, 18:36 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
"...я этот объект никак не увижу..."
Увидите, если это не встроенная диаграмма, а лист диаграммы


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение"...я этот объект никак не увижу..."
Увидите, если это не встроенная диаграмма, а лист диаграммы

Автор - nilem
Дата добавления - 26.08.2017 в 18:36
asmel Дата: Суббота, 26.08.2017, 19:17 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, а как быть, если диаграмма встроена, как в моем файле?
 
Ответить
Сообщениеnilem, а как быть, если диаграмма встроена, как в моем файле?

Автор - asmel
Дата добавления - 26.08.2017 в 19:17
AndreTM Дата: Суббота, 26.08.2017, 19:29 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Не "встроена", а "добавлена в коллекцию диаграмм листа". :)

Соответственно, кодом вы получаете доступ к ней как к соответствующему элементу соответствующей коллекции.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеНе "встроена", а "добавлена в коллекцию диаграмм листа". :)

Соответственно, кодом вы получаете доступ к ней как к соответствующему элементу соответствующей коллекции.

Автор - AndreTM
Дата добавления - 26.08.2017 в 19:29
asmel Дата: Суббота, 26.08.2017, 19:33 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM, прошу прощения за назойливость, как ее добавить в "коллекцию диаграмм листа" (опыт в этих делах никакой).
 
Ответить
СообщениеAndreTM, прошу прощения за назойливость, как ее добавить в "коллекцию диаграмм листа" (опыт в этих делах никакой).

Автор - asmel
Дата добавления - 26.08.2017 в 19:33
AndreTM Дата: Суббота, 26.08.2017, 19:41 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Что значит "как добавить"? Она уже там, вами добавлена.

Ну вы же картинками показываете?

Так на моей картинке вроде код виден, как я к коллекции диаграмм получаю доступ :)
Я подключил к переменой shc - .ChartObjects листа, это коллекция всех диаграмм листа.
А shc(1) ( или shc("Диаграмма 3") или shc.Item(1) ) - это и есть сейчас ваша диаграмма, насколько я вижу...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеЧто значит "как добавить"? Она уже там, вами добавлена.

Ну вы же картинками показываете?

Так на моей картинке вроде код виден, как я к коллекции диаграмм получаю доступ :)
Я подключил к переменой shc - .ChartObjects листа, это коллекция всех диаграмм листа.
А shc(1) ( или shc("Диаграмма 3") или shc.Item(1) ) - это и есть сейчас ваша диаграмма, насколько я вижу...

Автор - AndreTM
Дата добавления - 26.08.2017 в 19:41
asmel Дата: Суббота, 26.08.2017, 19:52 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM, я пытался добавить код

[vba]
Код
Dim grf As ChartObject
Public WithEvents Chart As Excel.Chart

Public Sub graphic()
Set grf = ThisWorkbook.Worksheets("Лист1").ChartObjects
End Sub
[/vba]
ничего не получилось!
Не очень понятно, куда добавлять этот код, чтобы увидеть диаграмму в VBA


Сообщение отредактировал asmel - Суббота, 26.08.2017, 19:58
 
Ответить
СообщениеAndreTM, я пытался добавить код

[vba]
Код
Dim grf As ChartObject
Public WithEvents Chart As Excel.Chart

Public Sub graphic()
Set grf = ThisWorkbook.Worksheets("Лист1").ChartObjects
End Sub
[/vba]
ничего не получилось!
Не очень понятно, куда добавлять этот код, чтобы увидеть диаграмму в VBA

Автор - asmel
Дата добавления - 26.08.2017 в 19:52
Pelena Дата: Суббота, 26.08.2017, 19:55 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
asmel, оформите код тегами с помощью кнопки # в режиме правки поста


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеasmel, оформите код тегами с помощью кнопки # в режиме правки поста

Автор - Pelena
Дата добавления - 26.08.2017 в 19:55
asmel Дата: Суббота, 26.08.2017, 20:01 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, добрый день! Исправил.
 
Ответить
СообщениеPelena, добрый день! Исправил.

Автор - asmel
Дата добавления - 26.08.2017 в 20:01
AndreTM Дата: Суббота, 26.08.2017, 21:27 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
asmel, я не понимаю, что вы подразумеваете под "увидеть диаграмму в VBA"...
И зачем вы определяете переменную типа ChartObject, а пытаетесь установить в неё ссылку на коллекцию (свойство) ChartObjects?
Зачем вам нужна Public-переменная Chart, да ещё и с событиями?

Вот вы умеете работать с листами, ячейками и прочим? Как вы к ним обращаетесь?
Например, вам нужна ячейка "B5" на листе "Лист12". Вот вы пишете:
[vba]
Код
Dim cell As Range
set cell = Sheets("Лист12").Range("B5")
[/vba]
Так?
Ну или можете обратиться по индексам элементов:
[vba]
Код
set cell = Sheets(3).Cells(5,2)
[/vba]

Вот вам надо получить ссылку на диаграмму с именем "Диаграмма 3" на листе "Лист1". В чем проблема?
[vba]
Код
Dim grf As ChartObject ' или просто Object
set grf = Sheets("Лист1").ChartObjects("Диаграмма 3")
[/vba]
Ну или, например, зная, что лист у вас - второй по списку, а диаграмма на нём всего одна:
[vba]
Код
set grf = Sheets(2).ChartObjects.Item(1)
[/vba]
Что неясного?

Обновите для себя знания по работе с объектами и коллекциями... в конце концов, просто обратитесь к справке или MSDN, объектная модель, а также методы и свойства - везде представлены.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщениеasmel, я не понимаю, что вы подразумеваете под "увидеть диаграмму в VBA"...
И зачем вы определяете переменную типа ChartObject, а пытаетесь установить в неё ссылку на коллекцию (свойство) ChartObjects?
Зачем вам нужна Public-переменная Chart, да ещё и с событиями?

Вот вы умеете работать с листами, ячейками и прочим? Как вы к ним обращаетесь?
Например, вам нужна ячейка "B5" на листе "Лист12". Вот вы пишете:
[vba]
Код
Dim cell As Range
set cell = Sheets("Лист12").Range("B5")
[/vba]
Так?
Ну или можете обратиться по индексам элементов:
[vba]
Код
set cell = Sheets(3).Cells(5,2)
[/vba]

Вот вам надо получить ссылку на диаграмму с именем "Диаграмма 3" на листе "Лист1". В чем проблема?
[vba]
Код
Dim grf As ChartObject ' или просто Object
set grf = Sheets("Лист1").ChartObjects("Диаграмма 3")
[/vba]
Ну или, например, зная, что лист у вас - второй по списку, а диаграмма на нём всего одна:
[vba]
Код
set grf = Sheets(2).ChartObjects.Item(1)
[/vba]
Что неясного?

Обновите для себя знания по работе с объектами и коллекциями... в конце концов, просто обратитесь к справке или MSDN, объектная модель, а также методы и свойства - везде представлены.

Автор - AndreTM
Дата добавления - 26.08.2017 в 21:27
asmel Дата: Суббота, 26.08.2017, 22:06 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM, есть экселевский файл (1009936.xls) - пристыкован к сообщению
вхожу в этом файле в редактор VBA и вижу

под строкой Microsoft Excel Objects вижу объекты описанные в этом файле
среди этих объектов нет диаграммы (графика), который присутствует при открытии экселем этого файла
при входе в редактор VBA я надеялся увидеть в списке объектов мою диаграмму, которая однозначно есть в файле
в списке на картинке объекта диаграммы нет
как сделать объект диаграмму видимым в списке объектов файла 1009936.xls
К сообщению приложен файл: 1009936.xls (81.5 Kb)


Сообщение отредактировал asmel - Суббота, 26.08.2017, 22:08
 
Ответить
СообщениеAndreTM, есть экселевский файл (1009936.xls) - пристыкован к сообщению
вхожу в этом файле в редактор VBA и вижу

под строкой Microsoft Excel Objects вижу объекты описанные в этом файле
среди этих объектов нет диаграммы (графика), который присутствует при открытии экселем этого файла
при входе в редактор VBA я надеялся увидеть в списке объектов мою диаграмму, которая однозначно есть в файле
в списке на картинке объекта диаграммы нет
как сделать объект диаграмму видимым в списке объектов файла 1009936.xls

Автор - asmel
Дата добавления - 26.08.2017 в 22:06
Pelena Дата: Суббота, 26.08.2017, 22:15 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
как сделать объект диаграмму видимым в списке объектов файла

разместить диаграмму на отдельном листе


Объясните, зачем Вам это?
К сообщению приложен файл: 5649256.jpg (9.3 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
как сделать объект диаграмму видимым в списке объектов файла

разместить диаграмму на отдельном листе


Объясните, зачем Вам это?

Автор - Pelena
Дата добавления - 26.08.2017 в 22:15
asmel Дата: Суббота, 26.08.2017, 22:24 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Объясните, зачем Вам это?

На нескольких листах 1,2,3 будут разные данные и разные графики и я хочу, чтобы программа работала на каждом листе со своим графиком.
Пока это не получается - при переходе на другой лист соответствие точек графика ячейкам пропадает.
А еще хочется разобраться с объектами в ООП.
 
Ответить
Сообщение
Объясните, зачем Вам это?

На нескольких листах 1,2,3 будут разные данные и разные графики и я хочу, чтобы программа работала на каждом листе со своим графиком.
Пока это не получается - при переходе на другой лист соответствие точек графика ячейкам пропадает.
А еще хочется разобраться с объектами в ООП.

Автор - asmel
Дата добавления - 26.08.2017 в 22:24
AndreTM Дата: Воскресенье, 27.08.2017, 00:06 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
хочу, чтобы программа работала
Что в вашем понимании есть "программа"?
Если это "код на VBA" - то см. выше. Если это что-то другое - то, будьте добры, сформулируйте свой понимание термина.
при переходе на другой лист соответствие точек графика ячейкам пропадает
Это вы о чём? Ваш вопрос был про доступ к объекту модели. "Точки, соответствия, графики, листы, ячейки" - это вы про что? Где это?
хочется разобраться с объектами в ООП
Что и было посоветовано выше... :(


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
хочу, чтобы программа работала
Что в вашем понимании есть "программа"?
Если это "код на VBA" - то см. выше. Если это что-то другое - то, будьте добры, сформулируйте свой понимание термина.
при переходе на другой лист соответствие точек графика ячейкам пропадает
Это вы о чём? Ваш вопрос был про доступ к объекту модели. "Точки, соответствия, графики, листы, ячейки" - это вы про что? Где это?
хочется разобраться с объектами в ООП
Что и было посоветовано выше... :(

Автор - AndreTM
Дата добавления - 27.08.2017 в 00:06
asmel Дата: Воскресенье, 27.08.2017, 06:42 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Что в вашем понимании есть "программа"?

В сообщении №13 приложен файл 1009936.xls.
Код VBA в разделе Class Modules - Class1 для меня является программой (возможно это не так).
Эта программа при активации точки диаграммы изменяет цвет двух ячеек, в которых находятся данные для точки диаграммы.
Эту программу написала Pelena, за что я ей очень благодарен.
С этой программой я пытаюсь разобраться, а заодно и с ООП.
Вопрос созданной мной темы "Является ли диаграмма объектом в ООП для VBA"
В списке объектов редактора VBA для файла 1009936.xls нет объекта диаграммы, хотя она присутствует. Мне это не понятно.
Если Вы AndreTM, понимаете работу VBA с объектами эксель, буду Вам благодарен за соответствующие разъяснения.


Сообщение отредактировал asmel - Воскресенье, 27.08.2017, 07:01
 
Ответить
Сообщение
Что в вашем понимании есть "программа"?

В сообщении №13 приложен файл 1009936.xls.
Код VBA в разделе Class Modules - Class1 для меня является программой (возможно это не так).
Эта программа при активации точки диаграммы изменяет цвет двух ячеек, в которых находятся данные для точки диаграммы.
Эту программу написала Pelena, за что я ей очень благодарен.
С этой программой я пытаюсь разобраться, а заодно и с ООП.
Вопрос созданной мной темы "Является ли диаграмма объектом в ООП для VBA"
В списке объектов редактора VBA для файла 1009936.xls нет объекта диаграммы, хотя она присутствует. Мне это не понятно.
Если Вы AndreTM, понимаете работу VBA с объектами эксель, буду Вам благодарен за соответствующие разъяснения.

Автор - asmel
Дата добавления - 27.08.2017 в 06:42
Pelena Дата: Воскресенье, 27.08.2017, 07:22 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
Насколько я понимаю, диаграмма является объектом листа, а не VBAProject, в отличие от листа, книги или макроса. Поэтому в VBE её нет, иначе по Вашей логике все фигуры, кнопки, картинки из листа должны были бы попадать в список объектов VBAProject

А Вам надо было сразу описать проблему
при переходе на другой лист соответствие точек графика ячейкам пропадает
Давно бы уже решили
К сообщению приложен файл: 9921176.rar (52.8 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНасколько я понимаю, диаграмма является объектом листа, а не VBAProject, в отличие от листа, книги или макроса. Поэтому в VBE её нет, иначе по Вашей логике все фигуры, кнопки, картинки из листа должны были бы попадать в список объектов VBAProject

А Вам надо было сразу описать проблему
при переходе на другой лист соответствие точек графика ячейкам пропадает
Давно бы уже решили

Автор - Pelena
Дата добавления - 27.08.2017 в 07:22
asmel Дата: Воскресенье, 27.08.2017, 07:32 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, спасибо!!!
 
Ответить
СообщениеPelena, спасибо!!!

Автор - asmel
Дата добавления - 27.08.2017 в 07:32
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!