Презентации Powerpoint VBA Имена файлов - PullRequest
0 голосов
/ 09 ноября 2019

Рассмотрим VBA для PowerPoint - это допустимый вызов функции Presentations?

Presentations(".\directory\ppname.ppt")

Обратите внимание, что он будет вызываться из VBA презентации PowerPoint, чтобы открыть еще один в подкаталоге.

Примеры Microsoft Presentations (и большинство других) не имеют конкретного отношения к принятым формам имен файлов, например, те, которые используют директивы ".", "..", "\", распознаваемые в сценариях DOS.

1 Ответ

0 голосов
/ 11 ноября 2019

Похоже, что это работает с Powerpoint 2007.

Как описано в комментарии, требуется блок текста (TextRange), начальная позиция и длина ссылки на файл, а также LinkAddr. LinkAddr - это, по сути, ссылка на файл в стиле DOS, например, ".. \ folder \ ppfile.ppt".

Цель состоит в том, чтобы запустить другой инструмент PowerPoint, вызвав его имя файла show.ppt или show.ppsm. Имя файла может ссылаться на какой-то другой каталог, используя имя файла MSDOS. Я не знаю, может ли он охватывать разные машинные платформы, но, похоже, он работает в одной системе Windows 10. Моя трудность в том, чтобы заставить это работать, было несколько ссылок на полный путь к изображениям, например что-то вроде C: \ blah \ blah \ image.jpg, в коде Visual Basic. PowerPoint это не понравилось, вместо этого он спросил о включении макросов и просто повесил трубку, когда должна была быть выполнена одна из моих ссылок на файлы. Избавившись от «макро» жалоб, это внезапно начало работать.

Или, возможно, некоторые ошибки были исправлены в недавнем ремонте моих инструментов PowerPoint 2007 года? 1009 *

Sub InsertLink(ByRef Trange As TextRange, fpos As Long, msglen As Long, LinkAddr As String) ' Insert an HTML link into the selected TextFrame. ' get the character range Dim Hrange As TextRange Set Hrange = Trange.Characters(Start:=fpos, length:=msglen) ' make it an HTML link With Hrange.ActionSettings(ppMouseClick) .Action = ppActionHyperlink .Hyperlink.Address = LinkAddr End With End Sub

...