Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2012, 20:16   #1
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
Вопрос Массив картинок на листе

Доброго всем вечера.
С помощью класа могу создавать массивы элементов управления и назначать им общую процедуру
Модуль класса C1:
Код:
Option Explicit
Public WithEvents PC As Image

Private Sub PC_Click()
 MsgBox PC.Name
End Sub
Модуль:
Код:
Option Explicit
Public P() As New C1
Dim S 'As OLEObject

Sub Add_Massiv()
Erase P
t = 1
For Each S In Лист1.OLEObjects
   If TypeName(S.Object) = "Image" Then
         ReDim Preserve P(1 To t)
                Set P(t).PC = S.Object
               t = t + 1
   End If
Next
End Sub
На открытие книги (или просто запустить) Add_Massiv и имаги в массиве.
Но никак не могу загнать в массив пикчуры. Как их объявить в классе?
Отфильтровать можно так:

Код:
For Each S In Лист1.Shapes
    If TypeName(S.OLEFormat.Object) = "Picture" Then
а вот не могу правильно объявить тип в классе
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 20.08.2012, 21:58   #2
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

As Object и ты не ошибешься )
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 21.08.2012, 10:35   #3
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Пробовал. Всё равно ошибка
Не соответствие типа.
Имеется в виду в классе:
Код:
Public WithEvents PC As Image
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 21.08.2012, 21:23   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Алекс,
твой код работает, если пикчеры - элементы управления "Рисунок".
А если это картинки типа Вставка - Рисунок, то такой подход не годится - у них нет событий. Однако, каждому такому рисунку можно назначить общий макрос. В макросе определять, по какому рисунку кликнули, с помощью Application.Caller.
Пример: http://www.cyberforum.ru/vba/thread4...ml#post2514533
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 21.08.2012 в 21:29.
Казанский вне форума Ответить с цитированием
Старый 22.08.2012, 09:05   #5
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Спосибо.
То что нужно
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать на форме массив из картинок EniOk C# (си шарп) 1 06.07.2011 22:13
Поиск в листе sasha_prof Microsoft Office Excel 6 24.03.2010 19:20
Перенос данных из строк в массив на другом листе akd2009 Microsoft Office Excel 2 15.12.2009 15:58
Сигнализация в Листе valerij Microsoft Office Excel 3 02.04.2009 02:57
ячейка на одном листе, в которую необходимо подставлять данные из столбца, находящегося на другом листе Ирина Водолагина Microsoft Office Excel 4 04.03.2009 23:38