2016-10-30 1 views
0

Может кто-нибудь просветить меня на этом. Мне нужно отобразить серию изображений (например, около 58 штук) в элементе управления ActiveX ActiveX в Excel с помощью кнопки. Если я нажму кнопку, он автоматически воспроизводит изображения 1 на 1, как GIF (кстати, мы не можем использовать gifs). Я немного слаб в петлях так может кто-то мнеДисплей Букет изображений в изображении ActiveX в Excel

ГПУ
Sub Button3_Click() 
Dim x As Integer 

x = 1 

    ActiveSheet.Image1.Picture = LoadPicture(ThisWorkbook.Path   & "\Images\Irene\" & x & ".jpg") 

'MsgBox (ThisWorkbook.Path & "\Images\Irene\" & x & ".jpg") 
End Sub 

ответ

0

попробовать это:

Sub main() 
    Dim iPic As Long 

    With ActiveSheet.Image1 
     For iPic = 1 To 6 
      .Picture = LoadPicture(ThisWorkbook.Path & "\Images\Irene\" & iPic & ".jpg") 
     Next 
    End With 
End Sub 

В моем кодирования для таких вещей, которые я также использую своего рода «таймер», чтобы показать фотографии :

Sub main() 
    Dim iPic As Long 

    With ActiveSheet.Image1 
     For iPic = 1 To 6 
      .Picture = LoadPicture(ThisWorkbook.Path & "\Images\Irene\" & iPic & ".jpg") 
      MyWait '<--| added to let pictures be actually shown one by one 
     Next 
    End With 
End Sub 

Sub MyWait() 
    Dim time1, time2 

    time1 = Now 
    time2 = Now + TimeValue("0:00:01") 
    Do Until time1 >= time2 
     DoEvents 
     time1 = Now() 
    Loop 
End Sub 
+0

так уточнить, эта строка (для iPic = 1 до 6) есть количество фотографий, которые у меня есть? и как сделать так, чтобы изображения отображались так быстро, я имею в виду как GIF-файл, приведенный выше код показывает их медленно, какое значение я должен использовать для TimeValue – danjok

+0

1) да, номер 6 в моем коде - это количество изображений, которые у вас есть. 2) скорость отображения в моем коде настраивается 'MyWait()' sub через '+ TimeValue (« 0:00:01 »)' часть инструкции присваивания 'time2', которая в настоящее время составляет 1 секунду. Чтобы ускорить работу, вам нужно искать другой метод, чем мой, который обрабатывает временные суммы меньше 1 секунды (например, см. [Здесь] (http://stackoverflow.com/questions/1470632/vba-show-clock-time -with-precision-of-less-than-a-second)) – user3598756

+0

@danjok, так как я ответил на ваш вопрос о том, как перебирать изображения, вы можете его принять. Спасибо – user3598756

Смежные вопросы