Avatar billede tma Juniormester
24. november 2004 - 14:58 Der er 3 kommentarer og
1 løsning

Oprettelse af flere objekter af visio type

Hej

Jeg har en stump kode som indsætter visio tegninger i et exceldokument. Det hele virker fint, når der kun skal indsættes 5-6 tegninger, men problemet kommer når der skal indsættes flere. JEg kan se i joblisten, at der oprettes en visio-instans for hvert gennemløb af koden.

Kan jeg i koden frigive den hukommelse der er blevet anvendt? Jeg ved, at det er muligt at gøre hvis man har brugt kommandoen CreateObject, men der er ikke umiddelbart muligt at skifte til den metode.

Torben

KODE:
    Do While ActiveCell <> ""
        tempnavn2 = Mid(ActiveCell, 22)
        Set NewSheet = Worksheets.Add
        NewSheet.Move After:=Worksheets(TempNavn1)
        NewSheet.Name = tempnavn2
        TempNavn1 = tempnavn2
        Range("A1").Select
        ActiveSheet.OLEObjects.Add(Filename:=tempsti & "DC-Horsens Flowskema " & tempnavn2 & ".vsd" _
                , Link:=False, DisplayAsIcon:=False).Select
        Selection.Verb Verb:=xlPrimary
        Range("A1").Select
        ActiveSheet.Shapes("Object 1").Select
        If Selection.ShapeRange.Height > 600 Then
            Rows("1:63").RowHeight = 12.75
            Rows("64:64").RowHeight = 17.25
            Columns("A:J").ColumnWidth = 8.43
            Columns("K:K").ColumnWidth = 9.71
            With ActiveSheet.PageSetup
                .LeftMargin = Application.CentimetersToPoints(0.6)
                .RightMargin = Application.CentimetersToPoints(0.5)
                .TopMargin = Application.CentimetersToPoints(1.1)
                .BottomMargin = Application.CentimetersToPoints(0.5)
                .Orientation = xlPortrait
            End With
            Selection.ShapeRange.LockAspectRatio = msoFalse
            Selection.ShapeRange.Height = 820
            Selection.ShapeRange.Width = 534
            Selection.ShapeRange.Line.Visible = msoFalse
            Range("A1").Select
        Else
            Rows("1:44").RowHeight = 12.75
            Rows("45:45").RowHeight = 19.5
            Columns("A:N").ColumnWidth = 8.43
            Columns("O:O").ColumnWidth = 14.86
            With ActiveSheet.PageSetup
                .LeftMargin = Application.CentimetersToPoints(1.1)
                .RightMargin = Application.CentimetersToPoints(0.5)
                .TopMargin = Application.CentimetersToPoints(0.6)
                .BottomMargin = Application.CentimetersToPoints(0.5)
                .Orientation = xlLandscape
            End With
            Selection.ShapeRange.LockAspectRatio = msoFalse
            Selection.ShapeRange.Height = 580
            Selection.ShapeRange.Width = 754
            Selection.ShapeRange.Line.Visible = msoFalse
            Range("A1").Select
        End If
        Sheets("Filer").Select
        ActiveCell.Offset(1, 0).Select
    Loop
Avatar billede Slettet bruger
25. november 2004 - 20:17 #1
Kan du vise den del af koden der opretter Visio objekterne ?
Avatar billede bak Forsker
25. november 2004 - 21:29 #2
Det må være her
ActiveSheet.OLEObjects.Add(Filename:=tempsti & "DC-Horsens Flowskema " & tempnavn2 & ".vsd" _
                , Link:=False, DisplayAsIcon:=False).Select


prøv at ændre Link til True

Jeg er ikke sikker men links kan man jo lade være at opdatere,. På den måde du gør det, mener jeg at de er embeddede, og så kommer dit ark til at indeholde en instance af visio for hvert billede.
Avatar billede tma Juniormester
26. november 2004 - 08:42 #3
De må ikke være linked, da de skal sendes elektronisk til brugere som ikke har adgang til den placering som tegningerne ligger på.

Torben
Avatar billede tma Juniormester
05. november 2010 - 10:33 #4
Lukket
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester