Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Определение продолжительности видеофайла. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Определение продолжительности видеофайла. (Макросы/Sub)
Определение продолжительности видеофайла.
cerber412 Дата: Вторник, 28.02.2017, 21:55 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте.
помогите решить вопрос с которым я столкнулся.

Всем известно, что у всех файлов - есть свойства.
Если щелкнуть правой клавишей мыши по видеофайлу - в ТоталКоммандере - можно заметить во вкладке "подробно" - такой параметр как "Продолжительность видео".

У меня возник вопрос - можно ли макросом извлечь этот параметр "продолжительности видео" - в зеленую ячейку, если адрес файла вписан в желтую ячейку ?
К сообщению приложен файл: 3453.xls (29.0 Kb)
 
Ответить
СообщениеЗдравствуйте.
помогите решить вопрос с которым я столкнулся.

Всем известно, что у всех файлов - есть свойства.
Если щелкнуть правой клавишей мыши по видеофайлу - в ТоталКоммандере - можно заметить во вкладке "подробно" - такой параметр как "Продолжительность видео".

У меня возник вопрос - можно ли макросом извлечь этот параметр "продолжительности видео" - в зеленую ячейку, если адрес файла вписан в желтую ячейку ?

Автор - cerber412
Дата добавления - 28.02.2017 в 21:55
RAN Дата: Вторник, 28.02.2017, 22:39 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Function TimeFilms(ByVal sFoderPath, ByVal sFileName) As String
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Dim strDate$
    With CreateObject("Shell.Application")
        Set objFolder = .Namespace(sFoderPath)
        Set objItem = objFolder.Items.Item(sFileName)
        strDate = objFolder.GetDetailsOf(objItem, 27)
        Set objItem = Nothing: Set objFolder = Nothing
        TimeFilms = strDate
    End With
End Function
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Function TimeFilms(ByVal sFoderPath, ByVal sFileName) As String
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Dim strDate$
    With CreateObject("Shell.Application")
        Set objFolder = .Namespace(sFoderPath)
        Set objItem = objFolder.Items.Item(sFileName)
        strDate = objFolder.GetDetailsOf(objItem, 27)
        Set objItem = Nothing: Set objFolder = Nothing
        TimeFilms = strDate
    End With
End Function
[/vba]

Автор - RAN
Дата добавления - 28.02.2017 в 22:39
cerber412 Дата: Среда, 01.03.2017, 00:25 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
RAN, что-то не работает.
Код добавил в модуль, пишу в ячейке =TimeFilms(C4;"1.avi") - не показывает результат.
Пишет #ЗНАЧ!


Сообщение отредактировал cerber412 - Среда, 01.03.2017, 00:47
 
Ответить
СообщениеRAN, что-то не работает.
Код добавил в модуль, пишу в ячейке =TimeFilms(C4;"1.avi") - не показывает результат.
Пишет #ЗНАЧ!

Автор - cerber412
Дата добавления - 01.03.2017 в 00:25
bmv98rus Дата: Среда, 01.03.2017, 07:31 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4110
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
cerber412,
Все работает, просто там в аргументах путь к файлу, и имя файла. Либо руками на две ячейки разбивайте, или в скрипте.
[vba]
Код
Function TimeFilms(ByVal sFilePath) As String
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Dim strDate$
    Dim ObjFile As Object
    
    Set ObjFile = CreateObject("Scripting.FileSystemObject").getfile(sFilePath)
    Set objFolder = CreateObject("Shell.Application").Namespace(ObjFile.parentFolder.Path)
    Set objItem = objFolder.Items.Item(ObjFile.Name)
    strDate = objFolder.GetDetailsOf(objItem, 27)
    Set objItem = Nothing: Set objFolder = Nothing: Set ObjFile = Nothing
    TimeFilms = strDate
End Function
[/vba]

RAN спасибо за 27. вроде и не надо было но выше 13го и не поднимался.

может кому пригодится
[vba]
Код
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("c:\")
Set objFSO = CreateObject("Scripting.FileSystemObject")
For i = 0 To 312
    'Debug.Print objFolder.GetDetailsOf(objFolder.Items, i)
Next
[/vba]


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 01.03.2017, 08:09
 
Ответить
Сообщениеcerber412,
Все работает, просто там в аргументах путь к файлу, и имя файла. Либо руками на две ячейки разбивайте, или в скрипте.
[vba]
Код
Function TimeFilms(ByVal sFilePath) As String
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Dim strDate$
    Dim ObjFile As Object
    
    Set ObjFile = CreateObject("Scripting.FileSystemObject").getfile(sFilePath)
    Set objFolder = CreateObject("Shell.Application").Namespace(ObjFile.parentFolder.Path)
    Set objItem = objFolder.Items.Item(ObjFile.Name)
    strDate = objFolder.GetDetailsOf(objItem, 27)
    Set objItem = Nothing: Set objFolder = Nothing: Set ObjFile = Nothing
    TimeFilms = strDate
End Function
[/vba]

RAN спасибо за 27. вроде и не надо было но выше 13го и не поднимался.

может кому пригодится
[vba]
Код
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("c:\")
Set objFSO = CreateObject("Scripting.FileSystemObject")
For i = 0 To 312
    'Debug.Print objFolder.GetDetailsOf(objFolder.Items, i)
Next
[/vba]

Автор - bmv98rus
Дата добавления - 01.03.2017 в 07:31
RAN Дата: Среда, 01.03.2017, 09:00 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
:)
Было
[vba]
Код
For i = 0 To 40
        strTemp = objFolder.GetDetailsOf(objFolder.Items, i)
        If InStr(1, strTemp, "Дата снимка", vbTextCompare) > 0 Or InStr(1, strTemp, "Дата съемки", vbTextCompare) > 0 Then
            strDate = objFolder.GetDetailsOf(objItem, i)
[/vba]
Стало
[vba]
Код
strDate = objFolder.GetDetailsOf(objItem, 27)
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение:)
Было
[vba]
Код
For i = 0 To 40
        strTemp = objFolder.GetDetailsOf(objFolder.Items, i)
        If InStr(1, strTemp, "Дата снимка", vbTextCompare) > 0 Or InStr(1, strTemp, "Дата съемки", vbTextCompare) > 0 Then
            strDate = objFolder.GetDetailsOf(objItem, i)
[/vba]
Стало
[vba]
Код
strDate = objFolder.GetDetailsOf(objItem, 27)
[/vba]

Автор - RAN
Дата добавления - 01.03.2017 в 09:00
bmv98rus Дата: Среда, 01.03.2017, 12:06 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4110
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
RAN,

"Универсальненько" :-(

У таких извращенцев, как я, сидящих на не локализованной ОС.
Name
Size
.....
Date taken
...

долго б "Дата снимка" искало :-) и мне не попадалось ничего об этих iColumn с перечнем


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеRAN,

"Универсальненько" :-(

У таких извращенцев, как я, сидящих на не локализованной ОС.
Name
Size
.....
Date taken
...

долго б "Дата снимка" искало :-) и мне не попадалось ничего об этих iColumn с перечнем

Автор - bmv98rus
Дата добавления - 01.03.2017 в 12:06
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Определение продолжительности видеофайла. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!