Ошибка VBA при открытии общего файла - чтение тегов рассматривается как попытка изменить

Я столкнулся со странной ошибкой и ищу некоторые идеи.

Сценарий:

Файл Powerpoint на общем диске открывается пользователем A. Теперь пользователь B хочет открыть тот же файл и получает сообщение "открыть только для чтения?". Диалог. Пользователь нажимает "ОК".

Файл открывается, и запускается надстройка (при каждом открытии файла) для проверки определенных тегов на слайдах, указывающих на наличие конфиденциального материала. Это вызывает ошибку в следующей функции:

Function taggedSlide(tagName As String)
' find the slide which is tagged with tagName
Dim oSl As Slide

Set oSl = Nothing

For Each oSl In ActivePresentation.Slides
  If Len(oSl.Tags(tagName)) > 0 Then        <<<<<<<<<<<<<<< this is the line that causes error
    Set taggedSlide = oSl
    Exit Function
  End If
Next oSl
Set taggedSlide = Nothing
End Function

Функция якобы перебирает все слайды в презентации, ищет тег с именем tagNameи возвращает слайд (или ничего). Похоже, что это включает только операции чтения, но код выдает ошибку в указанной строке.

Чтобы сделать вещи более интересными, поведение будет другим, если я просто отмечу файл как "только для чтения", сохраню его и открою. Разница в том, что я могу изменить файл в этом случае - я просто не могу его сохранить. Но этот файл нельзя редактировать вообще, даже если я не сохраню его. И вышеописанная операция чтения рассматривается как "модификация"...

У меня есть следующие вопросы:

  1. Есть ли свойство документа, которое я могу прочитать в VBA, чтобы сообщить мне, что это файл "невозможно изменить"? Я ищу что-то похожее на ActivePresentation.ReadOnly, но это установлено для файла "только для чтения", и это другое.
  2. Почему линия If Len(oSl.Tags(tagName)) > 0 Then лечиться как операция "изменение файла"?

Воспроизвести эту ошибку было трудно, потому что мне действительно нужно, чтобы два пользователя открыли один и тот же файл (сохранение файла как доступного только для чтения было недостаточно), чтобы это произошло. Ждем ваших идей / комментариев / ответов!

0 ответов

Другие вопросы по тегам