mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

ВНИМАНИЕ: Данная программа использует вызов системных функций - WinAPI
Поскольку синтаксис вызова этих функций в различных версиях Windows и Office может отличаться, работа программы на всех компьютерах не гарантируется!
Все размещённые на сайте макросы тестировались в Excel 2003 - 2010 под управлением 32-битной версии Windows XP

Если вы работаете в 64-битной версии Windows, или используете Office 2010 или 2013 (в котором встроена 7-я версия VBA),
то есть вероятность, что макрос работать не будет (потребуется доработка вызова функций WinAPI)
По указанным причинам, макрос не будет работать под управлением MacOS Excel 2004, 2008, 2011 и т.п.)

Функция VB (VBA) для определения продолжительности медиафайла

Получение длительности медиафайла формулой Excel

Узнать продолжительность (время) звучания аудиофайла (MP3, WAV и т.д.), или длительность видеофайла (видеоролика) из Excel совсем несложно.

Используйте функцию ПродолжительностьМедиафайла:
(функцию можно использовать как в макросах, так и на листе Excel)

Sub Пример_Использования_Функции_ПродолжительностьМедиафайла()
    Путь = "E:\Music\MODERN_TALKING With_a_little_love.mp3"
    MsgBox "Продолжительность в секундах: " & ПродолжительностьМедиафайла(Путь), vbInformation, Путь
End Sub

 

А вот и код самой функции:

Function ПродолжительностьМедиафайла(ByVal filename$) As Double
    ' получает в качестве параметра полный путь к медиафайлу
    ' возвращает целое число - его продолжительность (в секундах)
    On Error Resume Next: Dim MCI As New clsMCI    ' создаём новый экземпляр класса
    MCI.OpenMCI filename$    ' открываем медиафайл (AVI, MPEG, MP3, WAV и т.д.)
    ' если удалось прочитать медиафайл
    If MCI.MCIError = False Then ПродолжительностьМедиафайла = MCI.Length
    MCI.CloseMCI: Set MCI = Nothing    ' уничтожаем объект MCI
End Function

 

Для работы этой функции используется модуль класса (см. пример во вложении)

Обратите внимание на формулы в зелёных ячейках - они по имени файла возвращают его продолжительность в секундах

 


Можно использовать и компонент WindowsMediaPlayer:

Компонент WindowsMediaPlayer на форме VBA в Excel

В форме используется следующий код:

Private Sub CommandButton1_Click()
    Me.WindowsMediaPlayer1.URL = "D:\LedStudio content\ambulance.avi"
End Sub
 
Private Sub CommandButton2_Click()
    Me.TextBox1 = "": On Error Resume Next
    With Me.WindowsMediaPlayer1.currentMedia
        Me.TextBox1 = Me.TextBox1 & "Продолжительность ролика:" & vbNewLine
        Me.TextBox1 = Me.TextBox1 & "В секундах: " & .duration & vbNewLine
        Me.TextBox1 = Me.TextBox1 & "В минутах: " & .durationString & vbNewLine
    End With
End Sub

 

Пример - в прикреплённом файле WindowsMediaPlayer.xls

ВложениеРазмерЗагрузкиПоследняя загрузка
MCI.xls57 КБ634 недели 1 день назад
WindowsMediaPlayer.xls21.5 КБ62 года 26 недель назад

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
  ____            ____    ____        _         
| ___| __ __ | __ ) | _ \ __| | _ __
|___ \ \ \ / / | _ \ | | | | / _` | | '_ \
___) | \ V / | |_) | | |_| | | (_| | | | | |
|____/ \_/ |____/ |____/ \__,_| |_| |_|
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.