Определение Имени Картинки В Макросе

Тема в разделе "Visual Basic", создана пользователем ЧИА, 17 авг 2012.

  1. ЧИА

    ЧИА Active Member

    Регистрация:
    22 окт 2009
    Сообщения:
    33
    Симпатии:
    0
    На листе имеется несколько картинок. Всем назначен один Макрос.
    Как в Макросе определить - какая картинка его запустила. Т.е. узнать ее (картинки) индекс или имя?
     
  2. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    Загнать их всех в массив.
    И макрос будет один и индекс появится
     
  3. ЧИА

    ЧИА Active Member

    Регистрация:
    22 окт 2009
    Сообщения:
    33
    Симпатии:
    0
    Не понял идею с массивом.
    Когда я нажимаю на картинку, запускается назначенный ему макрос.
    И уже управление внутри макроса. Для меня основная проблема - это,
    как определить, что макрос запустился картинкой №5 или "Picture 5".
    Возможно, есть какие-то параметры, определяющие индекс или имя картинки, которые могут быть доступны внутри макроса
     
  4. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    Пример массива картинок на листе. Разбирайся

    Добавлено: Архив прицепил, но что-то не видно его?

    Добавлено:

    Добавлено: если на листе есть не только картинки, то во избежании ошибок, добавить проверку:

    Код (LotusScript):
    Sub Add_Massiv()
    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
     

    Вложения:

  5. ЧИА

    ЧИА Active Member

    Регистрация:
    22 окт 2009
    Сообщения:
    33
    Симпатии:
    0
    Совершенно замечательное решение!
    И подбор картинок в КОН.
    Боюсь показаться неблагодарным, но когда я писал "картинки", то имел ввиду не элементы управления, а рисунки, вставленные из файлов, например, в формате .JPG. И им назначается ОДИН Макрос через контекстное меню - Назначить макрос...
    EXCEL-файл формируется программно с большим количеством картинок (рисунков).
    И позвольте еще раз задать вопрос:
    как определить, что макрос запустился картинкой №5 или "Picture 5" (не Image)? И уже анализируя индекс или имя делать какие-то выводы.
     
  6. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    добавь в общий макрос:

    Код (LotusScript):
    MsgBox Application.Caller
     
  7. ЧИА

    ЧИА Active Member

    Регистрация:
    22 окт 2009
    Сообщения:
    33
    Симпатии:
    0
    Большое спасибо!
    Именно это мне и надо было
     
Загрузка...

Поделиться этой страницей