Avatar billede oyejo Nybegynder
14. marts 2005 - 17:59 Der 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
Avatar billede oyejo Nybegynder
14. marts 2005 - 18:01 #1
Har prøvd med denne koden, man det går galt:

With .Shapes.AddTextbox( _
      msoTextOrientationHorizontal, 203.54, 34.1, 307.75, 19.49)
    'shp.Characters.Text = "Denne fugerer ved ren tekst"
    .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
Avatar billede oyejo Nybegynder
14. marts 2005 - 18:10 #2
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
Avatar billede sjap Praktikant
14. marts 2005 - 19:00 #3
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
Avatar billede oyejo Nybegynder
14. marts 2005 - 19:16 #4
sjap >
din variant virker fint, (norsk win2000)
.TextBoxes.Add(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

men det gjør også min første versjon,
Men kan jeg skrive koden uten å benytte select/selection?
ved hjelp av en Set- eller With-setning?
Avatar billede bak Forsker
14. marts 2005 - 19:37 #5
hvis det bare er selve charttitlen

with ActiveChart
  .HasTitle = True
  .ChartTitle.Text = "=CT!R2C1"
end with
Avatar billede oyejo Nybegynder
14. marts 2005 - 19:39 #6
sjap > jaaaaaa.... med din variant gikk det.

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

Takker og bukker, da trenger jeg kun hjelp til å bli av med 60 point!
Du kan sikkert hejlpe meg med det også  ;-)
Avatar billede oyejo Nybegynder
14. marts 2005 - 19:41 #7
>bak, så ikke ditt svar :-)
man nei, det er en textboks som kommer i tillegg.
kan sette hele koden så er det lettere å se ( den er ikke ferdig )
Avatar billede oyejo Nybegynder
14. marts 2005 - 19:41 #8
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
Avatar billede oyejo Nybegynder
14. marts 2005 - 19:44 #9
Tar med glede imot tips til forberinger.
Avatar billede sjap Praktikant
14. marts 2005 - 20:06 #10
Tjah, pointene skal jeg gerne hjælpe dig med. Middagen står på bordet, så tips, må vente lidt :0)
Avatar billede oyejo Nybegynder
14. marts 2005 - 20:11 #11
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.
Avatar billede sjap Praktikant
14. marts 2005 - 21:39 #12
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.
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