VBA - Как открывать и использовать рабочие книги / документы, хранящиеся на Sharepoint Online (Office365) - PullRequest
1 голос
/ 09 апреля 2019

Я получил приложение Excel-VBA, которое открывает и читает другую книгу и документ Word.Пути и имена файлов хранятся в поле листа.

В настоящее время приложение открывает файлы из частного домена Sharepoint.Мы переходим на Office365.У меня проблема с адаптацией кода.Я не понимаю, как управлять (хранить и использовать) ссылки на офисные файлы, хранящиеся в Sharepoint365.Являются ли ссылки динамическими?Как они должны быть доступны через VBA?А как насчет аутентификации?

Когда я попытался просто заменить текущие URL-адреса локального частного документа / книги Sharepoint URL-адресами Office365, методы VBA успешно открывают файлы, но их содержимое недоступно (я получаю пустое значение)документы).

Я посмотрел в поддержку и форумы, но не смог найти исчерпывающую информацию по этому вопросу.Я должен использовать REST API?Если так, то как?Кто-нибудь может указать или написать пошаговое объяснение для новичка?

Код прост, как может быть:

1- Для рабочей книги Excel (сделать: открыть и найти в диапазоне;проблема wkb пуста)

[...]

Set bookURLs = Workbooks.Open(fileName)
Set searchRange = bookURLs.Worksheets(1).Columns(1)

[...]

2- Для документа Word (сделать: открыть и найти, используязакладки; проблемный документ пуст)

[...]

Set appWord = New Word.Application
With appWord
    Set docTarget = .Documents.Open(fileName)
    docTarget.Bookmarks([...]).Range.Copy

[...]

1 Ответ

0 голосов
/ 10 апреля 2019

Обнаружил что-то, что помогает мне ...

Оказалось, что проблема в формате URL, используемом в Sharepoint Online.Когда ссылка получена через «Копировать ссылку», она включает информацию о типе файла и доступе, который будет предоставлен владельцу ссылки.Он также включает GUID для файла вместо пути и имени файла.Для программного доступа мне нужен был «старомодный» формат ссылок.Есть способ обойти это последнее: отобразить историю версий файла и скопировать URL-адрес в последнюю версию.Этот URL будет принят моей старой кодировкой VBA.

(я также заметил, что если файлы передаются через Ms-Teams; пользовательский интерфейс в командах предложит 2 различных формата для копирования прямо из проводника файлов.)

Моя проблема решена.Если кто-то знает лучше - например, способ использовать URL с GUID в VBA;тогда любые дополнительные знания были бы хороши!

...