14. marts 2005 - 17:59Der er
11 kommentarer og 1 løsning
VBA Shape: Hvordan skrive koden uten å benytte selection?
Har en tekstbosk i et diagram. Denne koden fungerer til å opprette tekstboksen. ..man jeg har et problem: HVORDAN SKRIVE KODEN UTEN Å BENYTTE SELECT / SELECTION?
.Shapes.AddTextbox( msoTextOrientationHorizontal, _ 203.54, 34.1, 307.75, 19.49).Select With Selection .Formula = "=CT!A1" .HorizontalAlignment = xlCenter .AutoScaleFont = False .VerticalAlignment = xlTop .Orientation = xlHorizontal .AutoSize = False With .Font .Name = "Arial" .Size = 12 .Bold = True End With End With
Dette går også galt... Dim shp As Shape Set shp = Shapes.AddTextbox( _ msoTextOrientationHorizontal, 203.54, 34.1, 307.75, 19.49) With shp .Formula = "=CT!A1" .HorizontalAlignment = xlCenter .AutoScaleFont = False .VerticalAlignment = xlTop .Orientation = xlHorizontal .AutoSize = False With .Font .Name = "Arial" .Size = 12 .Bold = True End With End With
oyejo > Jeg kunne ikke lige få ovenstående til at virke (måske er min Excel for gammel), men til gengæld kunne jeg lave noget der ligner lidt (men det ved jeg jo så ikke om det virker i din version):
With ActiveChart.TextBoxes.Add(203.54, 34.1, 307.75, 19.49) .Select .Formula = "=CT!A2" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = xlHorizontal .AutoSize = False End With
Sub NyeDiagram() Application.ScreenUpdating = False Dim i As Long Dim chr As Chart Set chr = Charts.Add i = 1 With chr .Name = "C" & i .ChartType = xlXYScatterLinesNoMarkers .SetSourceData Source:=Sheets("CT").Range("A7:F655"), PlotBy:= _ xlColumns .Move After:=Sheets(4) .HasTitle = True .ChartTitle.Characters.Text = "Prosjekt og Sone "
'*** X-AKSE (Tidsaksen) TickLabels er tallene på skaleen med evt. enhet With .Axes(xlCategory, xlPrimary) .HasTitle = True .AxisTitle.Characters.Text = "dato" With .TickLabels .NumberFormat = "d-mmm" .Font.Size = 8 End With End With '****DATASERIER disse må være før egenskaper på sekundæraksen .SeriesCollection(3).AxisGroup = 2 .SeriesCollection(4).AxisGroup = 2 .SeriesCollection(5).AxisGroup = 2
'*** Y-PRIMÆRAKSE With .Axes(xlValue, xlPrimary) .HasTitle = True .AxisTitle.Characters.Text = "Spenning og strøm" With .TickLabels .NumberFormat = "0.0""V&A""" .Font.Size = 8 End With End With '*** Y-SEKUNDÆRAKSE With .Axes(xlValue, xlSecondary) .HasTitle = True .AxisTitle.Characters.Text = "Elektrodepotensialer" With .TickLabels .NumberFormat = "0""mV""" .Font.Size = 8 End With End With
With .Legend '*** FORKLARING (plasseres nederst) .Position = xlBottom .Font.Size = 8 End With
With .TextBoxes.Add(203.54, 34.1, 307.75, 19.49) .Formula = "=CT!A1" .AutoScaleFont = False .AutoSize = False .HorizontalAlignment = xlCenter With .Font .Name = "Arial" .Size = 12 .Bold = True End With End With End With End Sub
det går fint, pointen har du alt fortjent :-) Har litt problemer med å forstå tekstboks-objektet. Er det en del av diagrammet eller en selvstendig enhet? får kanskje opprette et nytt spørsmål på dette senere.
Jeg synes ikke lige der er nogen oplagte forbedringer i dit program
Jeg er heller ikke ekspert på teksbokse, men jeg tror de skal opfattes som selvstændige enheder, der blot placeres som "under-objekter" i diagrammer og regneark.
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.