Я часто делаю скриншоты окна и сохраняю их в папку, а затем добавляю их в презентации PowerPoint, обрезанные, измененные и выровненные определенным образом. Чтобы сохранить щелчки мыши и сделать процесс воспроизводимым, я хотел бы автоматизировать его с помощью макроса Visual Basic в PowerPoint.Gettign самый последний файл в каталоге в Visual Basic
В настоящее время у меня есть следующие:
Sub Insert_Picture_3()
Dim oPic As Shape
Set oPic = ActiveWindow.View.Slide.Shapes.AddPicture("\\nlamvfs00065\homes\nlkpec\newpic.png", False, True, 0, 0, -1, -1)
oPic.PictureFormat.CropLeft = 115
oPic.PictureFormat.CropTop = 85
oPic.PictureFormat.CropRight = 16
oPic.PictureFormat.CropBottom = 55
oPic.Height = 7.5 * 72
oPic.Left = 0 * 72
oPic.Top = 0 * 72
oPic.ZOrder msoSendToBack
End Sub
Аргумент "AddPicture" фиксированный файл с именем "newpic.png". Тем не менее, мне бы хотелось, чтобы это был самый последний png-файл в каталоге «\ nlamvfs00065 \ homes \ nlkpec», так что мне не нужно переименовывать свои скриншоты в «newpic.png» каждый раз, когда я применяю макрос ,
Я нашел пример, который читает подобное следующему:
Dim myFile = DirectoryInfo.GetFiles("\\nlamvfs00065\homes\nlkpec").OrderByDescending(Function(f) f.LastWriteTime).First()
Однако, если я введу эту строку в моем Visual Basic редактор запускается из PowerPoint 2007, я получаю сообщение об ошибке
"Compile error: Expected: end of statement"
с обозначением "=".
Есть ли у кого-нибудь предложения, как я могу сгенерировать «myFile» для передачи в «AddPicture» как самый последний png-файл в указанном каталоге? Заранее спасибо.
Один из подходов - прочитать имена файлов в массиве, а затем сравнить результат с FileDateTime ("path_to_file"); если он больше текущего, сделайте новое filedatetime текущим. –