07. november 2006 - 15:40Der er
9 kommentarer og 1 løsning
Hvordan returnerer man mål på "shapes" via en makro
Jeg ønsker at oprette en makro der returnerer alle værdier for højde og bredde på alle rektangler (shapes) der er på mit ark 1. Værdierne skal indsættes i en tabel - et navngivet område på ark 2 i samme mappe. Hvordan gør man det?
Nu har selv fundet af, at følgende kode returnerer ønskede værdier for "rectangle 1"): ActiveSheet.Shapes("Rectangle 1").Select Range("A1").Value = Selection.ShapeRange.Height Range("A2").Value = Selection.ShapeRange.Width
Hvad gør man når der er mange rektangler, og Excel selv skal finde ud af hvor mange der er tegnet, og hvilken nummerering de er blevet tildelt af excel? Tilsyneladende er nummeringen lettere vilkårlig (?). Ihverfald har jeg observeret at ved oprettelse af flere rektangler, springes "numre" over, så de ikke er fortløbende. De returnerede mål er iøvrigt forskellig fra dem man kan aflæses manuelt, med en faktor ca. 28,3. Hvorfor?
Public Sub ShapeStørrelse() Dim I As Long I = 2 [A1] = "Navn" [B1] = "Højde" [C1] = "Bredde"
For Each sh In ActiveSheet.Shapes Range("A" & I).Value = sh.Name sh.Select Range("B" & I).Value = Selection.ShapeRange.Height Range("C" & I).Value = Selection.ShapeRange.Width I = I + 1 Next End Sub
Tak, hvad hvis det er et rectangel eller en retvinklet trekant. Det må være samme terminologi, men andre "sh.Type nr"?
Kan man iøvrigt sortere i shapes, så der kun returneres rectangler og evt. trekanter i listen? Hvis ikke, er det ikke et problem, idet jeg bare kan sortere i den liste du har lavet.
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.