VBA: Returnere korrekt type ved activeX/OLE-objekter
Jeg har en MSGraph i et dokument, men jeg kan ikke finde ud af at referere til den i VBA (det går fint, hvis jeg indsætter en ny med CreateObject, men jeg ønsker at ændre en eksisterende graf).
Jeg har forsøgt nedenstående, men får meddelelsen: "Class does not support Automation or does not support expected interface"
Dim Curve As Graph.Application
Sub GetCurve() Dim s As InlineShape On Error GoTo ErrorLabel For Each s In ActiveDocument.InlineShapes If s.AlternativeText = "Curve1" Then Set Curve = s.OLEFormat.Object Exit For End If Next Exit Sub ErrorLabel: 'Display error message (with possibillity to copy message to clipboard): InputBox Error, "Fejl", Error End Sub
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Jeg har fundet ud af det: 1) Curve skal være Object ("late binding") 2) OLE-objektet skal aktiveres 3) Curve skal sættes lig med .Oleformat.Object 4) Diagrammet refereres gennem Curve.Application
Dim Curve As Object Sub GetCurve() Dim ils As InlineShape On Error GoTo ErrorLabel
For Each ils In ActiveDocument.InlineShapes If ils.AlternativeText = "Curve1" Then ils.OLEFormat.Activate Set Curve = ils.OLEFormat.Object ' anvend objektet: Curve.Application.Chart.Width = 500 Exit For End If Next Exit Sub ErrorLabel: 'Display error message (with possibilty to copy message to clipboard InputBox Error, "Fejl", Error End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.