Назначить инициированный код нескольким изображениям – Excel VBA

Я хотел назначить некоторые конкретные действия при нажатии на одно из изображений, которые я вставил на листе Excel. Проблема в том, что у меня есть 52 изображения (покерные карты для тех, кто задается вопросом). Итак, мой вопрос: есть ли способ избежать написания кода для 52 случаев и найти способ, как показано ниже:

Private Sub Image(x)_Click() Call common_subroutine(x) End Sub 

, Вместо того, чтобы писать то же самое 52 раза, по одному для каждого другого имени изображения? Поскольку я использую одну и ту же подпрограмму для выполнения работы с переменной в соответствии с ситуацией, загрузка работы не будет такой большой, если не будет никакого способа это сделать, но это, безусловно, беспокоит меня, является ли этот явно глупый способ единственным возможное.

Я несколько раз сталкивался с этой проблемой при программировании пользовательских форм. К сожалению, я никогда не нашел способ обойти создание триггера для каждого объекта по отдельности. Тем не менее, я действительно думал использовать Python для печати фактического кода, который я мог бы затем вставить в пользовательскую форму VBA. Не нужно, чтобы нудный номер менялся таким образом. (Я полагаю, вы могли бы это сделать и в VBA, но удачи в этом можно сделать в одной строке).

Цикл Python ниже будет работать для примера, который вы опубликовали.

 for i in range(52): print "Private Sub Image%d_Click()\n\tCall common_subroutine(%d)\nEnd Sub\n" % (i + 1, i + 1) 

Просто запустите из командной строки и скопируйте вывод.

Хорошо, я немного запутался в вашем примере VBA, но лучший способ сделать это – выбрать все снимки, щелкнуть правой кнопкой мыши – назначить макрос.

Это присвоит тот же макрос всем выбранным снимкам.

Да. Дайте каждому изображению одно и то же имя и другой индекс. Теперь вы можете ссылаться на этот объект как на целую коллекцию и выбирать изображение по любому указателю.

  • Можно ли программным образом передавать параметры в запросе на обновление Microsoft Access?
  • Форматирование даты MM / DD / YYYY в текстовом поле в VBA
  • Как объединить значения из нескольких строк в одну строку? Имейте модуль, но вам нужны переменные, объясняющие
  • Умный способ подключения нескольких изображений к макросу макроса - VAB Excel
  • Недоступен программный доступ к проекту Visual Basic
  • Excel vba для создания любой возможной комбинации диапазона
  • Хорошие шаблоны для обработки ошибок VBA
  • Названия листов вкладки Excel против имен таблиц Visual Basic
  • Преобразование строкового представления константы в константу?
  • Вывод строк Excel в ряд текстовых файлов
  • Как изменить расширенные свойства файла с помощью vba
  • Давайте будем гением компьютера.