Комментарии 9
Не заработало в 2003 ворде... Почему не использовать встроенную в vba функцию Dir вместо создания "Scripting.FileSystemObject"? Даже новомодные ГПТ чаты её используют, если им предложить решить эту задачу. )
А какие ошибки выдаёт и на каких строках?
Наверно можно использовать функцию Dir, использовал что под рукой было. ) Я не ставил себе задачу сделать универсальный стабильный и оптимальный скрипт, у меня была задача решить проблему, решил так как получилось. ))
Я больше хочется чтобы скрипт был максимально простой и понятный и пользователь его мог легко модифицировать под свои нужды.
Если не трудно, подскажите как можно использовать в этом случае функцию Dir.
With Selection
.Style = "Рисунок" 'Присваиваем объекту рисунок стиль "Рисунок"
Run time error 5834 Элемент с указанным именем не существует , наверное не находит стиль с таким названием.
я обычно стараюсь не использовать функции типа CreateObject, разве что если других вариантов нет.
....
FileName = Dir(FolderPath)
While FileName <> "" And InStr(1, FileName, ".") > 0
ExtFile = LCase(Mid(FileName, InStrRev(FileName, ".") + 1))
If InStr(".jpg.jpeg.bmp.gif.png.emf.eps.", "." & ExtFile & ".") > 0 Then
Debug.Print FileName
'какие-то действия
End If
FileName = Dir
Wend
Ну да, должен существовать стиль с названием "Рисунок". Нужно или изменить название стиля в скрипте на тот который используется у вас в документе word для рисунков и подписей к рисункам, либо создать стили с названием "Рисунок" и "Рисунок Название" у вас в документе, по идее всё должно работать.
Попробую на днях создать 2-й вариант скрипта с использованием функции dir
Написал ещё один вариант скрипта на основе только функции Dir.
Дополнил статью, большое спасибо за подсказку ).
If ExtFile = "jpg" Or ExtFile = "jpeg" Or ExtFile = "bmp" _
Or ExtFile = "gif" Or ExtFile = "png" Or ExtFile = "TIFF" _
Or ExtFile = "tif" Or ExtFile = "emf" Or ExtFile = "eps" Then
А почему бы не
if instr("/jpg/jpeg/bmp/gif/png/TIFF/tif/emf/eps/", "/"+ExtFile+"/") then
?
Есть подозрения (которые конечно лучше бы проверить), что куча ifов работает быстрее (правда это имеет смысл, когда файлов много, для разовой работы конечно лучше выбрать что проще)
Можно наверно, но я старался писать максимально простой и понятный код, который мог использовать (и модифицировать под себя) даже человек мало смыслящий в VBA...
VBA: добавляем в документ Word рисунки из любой папки и формируем подписи к рисункам