Visio PasteSpecial, возвращающая ошибку компиляции: ожидаемая функция или переменная - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь экспортировать диаграмму Visio в формате PNG с прозрачным фоном. Я имел успех в прошлом, экспортируя его в SVG, открывая его в Inkscape, удаляя фон и сохраняя его таким образом. Однако в диаграмме, с которой я сейчас работаю, у меня много текста со странным форматированием, которое не поддерживается Inkscape.

Я решил преобразовать весь свой текст в изображения перед экспортом в SVG, и Я застрял на том, как я должен это сделать. Сначала я подумал, что могу скопировать и вставить каждое текстовое поле в виде изображения, но это было бы непрактично по нескольким причинам; самое важное, что каждое текстовое поле имеет очень точное местоположение, которое я не мог легко скопировать вручную.

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

'Enable diagram services
Dim DiagramServices As Integer
Dim XLoc As String
Dim YLoc As String
Dim myPage As Visio.Page
Dim newShape As Visio.Shape

DiagramServices = ActiveDocument.DiagramServicesEnabled
ActiveDocument.DiagramServicesEnabled = visServiceVersion140 + visServiceVersion150
ActiveWindow.DeselectAll
myPage = Application.ActiveWindow.Page


For Each myShape In myPage.Shapes
    If Not myShape.OneD Then
        myShape.Select
        XLoc = ""
        YLoc = ""
        If myShape.Text = "\S+" Then
            myShape.Copy
            XLoc = myShape.Cells("pinx")
            YLoc = myShape.Cells("piny")
            newShape = myPage.PasteSpecial(visPasteMetafile) '<--- Compile error: Expected Function or variable
            newShape.Cells("pinx") = XLoc
            newShape.Cells("piny") = YLoc
            myShape.Delete
        End If
    End If
Next

'Restore diagram services
ActiveDocument.DiagramServicesEnabled = DiagramServices
...