Я пытаюсь экспортировать диаграмму 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