Самый простой способ выяснить, как программно реплицировать функциональные возможности Excel, - это записать макрос при выполнении задачи вручную, а затем остановить запись и проверить созданный для вас VBA с корректировкой по мере необходимости.
Запись макроса:
- Разработчик> Запись макроса> OK
Выполнить задачу вручную:
- Вставить> Изображение> выбрать изображение
(или, как вы показываете эти изображения)
Остановить запись:
Проверьте VBA, сгенерированный для вас:
- Разработчик> Макросы> выберите макрос> Редактировать
... при необходимости:
Выполните следующие действия gДля меня этот код был написан следующим образом:
ActiveSheet.Pictures.Insert("C:\{myPath}\{myFile}.jpg").Select
Чтобы получить максимальную пользу от изучения этой задачи, уделите время Google каждой из команд, которые она использует.Я бы добавил «excel msdn» в конец моего поискового запроса, ограничив тем самым результаты официальной документацией Microsoft Developer Network.
Небольшой метод проб и ошибок также имеет большое значение (после резервного копирования, конечно), именно так я впервые выяснил, что многие из Select
и Activate
методов, которыеДобавления Macro Recorder можно безопасно удалить.
В приведенном выше примере завершенный код может выглядеть следующим образом:
Sub btnRollDice_Click()
Dim DiceNum As Integer
Randomize
DiceNum = Int((6 * Rnd) + 1)
ActiveSheet.Pictures.Insert ("C:\{myPath}\myDice" & DiceNum & ".jpg")
End Sub
Если это просто вопрос отображения того же набора изображений, вы также можетерасположите все изображения (фигуры) в правильном месте (даже в «одном и том же месте», друг над другом) и установите для свойства Visible
фигуры значение True / False, если необходимо, например:
ActiveSheet.Shapes("My Die 4").Visible = False 'hides this image