База знаний KB0073

Как с помощью VBA выяснить, используется ли фигура в think-cell?

Каждая фигура, обрабатываемая think-cell, помечается тегом. В дополнение к фигурам PowerPoint надстройка think-cell может также разместить специальную фигуру (контейнер ActiveDocument) на слайдах, образцах слайдов или пользовательских макетах. Этот контейнер ActiveDocument невидим и содержит специальную информацию об объектах think-cell.
В объектной модели PowerPoint каждый объект PowerPoint.Shape содержит коллекцию Tags. Для идентификации фигур think-cell задает специальный тег thinkcellShapeDoNotDelete. Значение специального тега для контейнера ActiveDocument равно thinkcellActiveDocDoNotDelete, для всех других управляемых think-cell фигур тег начинается с символа t.

Пример: Как определить фигуру, управляемую think-cell?

В следующей функции VBA демонстрируются способы классификации объекта PowerPoint.Shape с помощью специального тега:

Sub CheckShape(oShape As PowerPoint.Shape)
    Dim str As String
    str = oShape.Tags.Item(Name:="thinkcellShapeDoNotDelete")
    If (str = "" Or Left$(str, 1) <> "t") Then
        MsgBox "PowerPoint shape"
    Else
        If str = "thinkcellActiveDocDoNotDelete" Then
            MsgBox "think-cell ActiveDocument"
        Else
            MsgBox "think-cell shape"
        End If
    End If
End Sub

Вы можете использовать эту функцию для идентификации всех фигур на активном слайде:

Sub Test()
    Dim oShape As PowerPoint.Shape
    For Each oShape In ActiveWindow.View.Slide.Shapes
        Call CheckShape(oShape)
    Next oShape
End Sub

Обратите внимание на то, что коллекция тегов для каждой фигуры также копируется при копировании фигуры, например при копировании и вставке диаграммы think-cell. CheckShape обозначит фигуру как фигуру think-cell, даже в том случае когда фигура была частью диаграммы think-cell и потом была скопирована и вставлена в другую презентацию.

Возможно, вам стоит изучить статью KB0107: Как скопировать и вставить диаграмму в коде VBA?

think-cell использует файлы cookie для улучшения функциональности, эффективности и безопасности этого веб-сайта. Если вы хотите пользоваться всеми функциями этого сайта, требуется ваше согласие. С более подробной информацией об использовании файлов cookie компанией think-cell, вашем согласии и правах на конфиденциальность данных можно ознакомиться в нашей Политике конфиденциальности.