На сайте excel.acdc.com представлен клип группы AC/DC в очень необычном формате. По ссылке можно скачать Excel-файл, который может проигрывать «видео».
Интересно узнать, как реализован такой фокус. Если посмотреть на техническую сторону этой занимательной безделушки, то можно увидеть следующий код макроса (код даже не закрыт паролем) на VBA, проигрывающий псевдо-видео:
Sub PlayVideo() Dim i As Long Dim Start, Delay i = 100 Do While Sheet1.Cells(i, 17).Value <> "" Start = Timer 'Set start to internal timer Delay = Start + 0.083 'Set delay so frames change 12 per sec. 'Display Do While Timer < Delay DoEvents Loop Sheet1.Range("B2").Value = Sheet1.Cells(i, 17).Value DoEvents If StopPlaying = True Then Exit Do End If Start = Timer 'and reset the timer Delay = Start + 0.083 'and the delay i = i + 1 Loop 'Stop audio Call PlayBackStop 'Clear video Sheet1.Range("B2").Value = "" 'Show logo Sheet1.Range("B2").Value = Sheet1.Range("Q99").Value 'Move cursor 'Sheet1.Range("A1").Select End Sub [/sourcecode] </p> <p>Каждые 0.083 секунды, то есть примерно с частотой 12 кадров в секунду происходит заполнение ячеек новыми данными.</p> <p> Проигрывание звука осуществляется через импортированную функцию библиотеке winmm.dll :</p> Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _ (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Предварительно звук извлекается из xls-файла в файл ACDC.wav c помощью простого поиска заголовка внутри бинарного xls-файла. Файл ACDC.wav был предварительно внедрен в Excel-документ.
Комментарии: