Avatar billede dsj1972 Juniormester
16. december 2009 - 17:34 Der er 8 kommentarer og
1 løsning

2 ting! Hvordan kan man indsætte værdi fra Userform i WordArt og/Eller hvordan laver man en Cirkel tekst uden WordArt i tekstboks

Hejsa

Jaee overskrift på spørgsmål giver meget godt billede af hvad jeg spørger ind til.

Jeg har lavet en Userform som skal bruges til udfylde en masse data rundt forskellige steder, men jeg har et problem på en side hvor det er en CD hvor teksten meget gerne skulle være buet, indtil videre er der jo kun WordArt som kan bøje tekst efter hvad jeg har kunne finde ud af. Sjovt nok syns jeg at kunne huske en meget gammel vers. word hvor man kunne dette uden brug af WordArt ved simpelt at tegne en cirkel og bede om tekst følger cirkel (dette kan man eks. i Avery designpro)
Det er faktisk en etikette taget fra designpro som vi arbejder på i Word.

Man kunne følgelig godt bare lave teksten lige og derved kunne indsætte fra formularen, men syns at lige den tekst giver helhed sammen med en tegning og skal derfor laves lidt buet for at give det bedste indtryk.

Jeg vil derfor give godt med point til en brugbar løsning.
Jeg sætter 200 point på højkant men deler gerne flere ud i xstra spørgsmål hvis noget brugbart kommer på banen.

Håber i kan følge mit problem ellers spørg ind.

På forhånd tak!!

Mvh Dennis Jensen
Avatar billede Lene Fredborg Ekspert
16. december 2009 - 19:38 #1
Du spurgte om muligheden for at skrive "buet" tekst som tillægsspørgsmål i http://www.eksperten.dk/spm/895498 - og man kan stadig ikke gøre det uden WordArt og har heller ikke kunnet i tidligere versioner ;-). Der er stor forskel på et tekstbehandlingsprogram som Word og et layoutprogram.

Koden nedenfor viser, hvordan du kan indsætte WordArt via en UserForm.

Forudsætninger for koden:
- UserForm indeholder en TextBox med navnet txtWordArt.
- UserForm indeholder en CommandButton med navnet "cmdOK".
- Koden indsættes i koden til din UserForm.

Når man klikker på cmdOK, vil koden nedenfor oprette en WordArt med teksten fra textWordArt - og med de data, der står i koden i øvrigt - tilret farver, størrelse og placering efter behov. Du er nødt til at prøve dig frem:

Private Sub cmdOK_Click()
    Dim oShape As Shape
       
    If Me.txtWordArt.Text = "" Then
        'Sørg for, at tekstboksen ikke er tom
        MsgBox "Skriv den ønskede tekst."
        Me.txtWordArt.SetFocus
        Exit Sub
    End If
    'Indsæt WordArt - msoTextEffect3 er buet
    Set oShape = ActiveDocument.Shapes.AddTextEffect( _
            msoTextEffect3, _
            Me.txtWordArt.Text, _
            "Arial Black", 36#, msoFalse, msoFalse, 150, 250)
    'Nu kan du gøre mere med oShape, hvis du har brug for det
    'F.eks. tilret størrelsen på teksten, farver osv.
    With oShape
        'Ret på tallene her for at ændre form mm.
        .ScaleHeight 2.5, msoFalse
        .ScaleWidth 1.5, msoFalse
       
        'Fyld
        .Fill.Visible = True
        .Fill.Solid
        .Fill.ForeColor.RGB = RGB(255, 100, 100)
        .Fill.Transparency = 0
       
        'Kant
        .Line.Weight = 1#
        .Line.DashStyle = 1
        .Line.Style = 1
        .Line.Transparency = 0#
        .Line.Visible = True
        .Line.ForeColor = wdColorBlack
        .Line.BackColor.RGB = RGB(255, 255, 255)
       
        .Height = 80
        .Width = 400
    End With
   
    'ryd op
    Set oShape = Nothing
   
    Unload Me
End Sub
Avatar billede dsj1972 Juniormester
16. december 2009 - 22:06 #2
Hej Lene,

Ja det ser ud til at være en fin mulighed, jeg kommer så nok til at kobinere den med en anden txtboks i min formular, men det skulle nok kunne lade sig gøre.

Laver lige lidt forsøg og så vender jeg tilbage

mvh Dsj
Avatar billede dsj1972 Juniormester
16. december 2009 - 22:11 #3
Hmm, hvordan får man den evt. så til at blive lavet på et bestemt sted....via et bogmærke eller kan man også i kode angive et eller anden form for koordinat??
Avatar billede Lene Fredborg Ekspert
16. december 2009 - 23:22 #4
Man kan kode næsten hvad som helst, hvis man bare lige kan finde det, man skal bruge ;-)

Du kan tilføje disse linjer før End With:

        'Position - tilret
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
        .RelativeVerticalPosition = wdRelativeVerticalPositionPage
        .Top = CentimetersToPoints(2)
        .Left = CentimetersToPoints(3)

Du må tilrette efter behov. Her er valgt placering relativt til sidens øverste venstre hjørne - men du kan vælge andre muligheder, hvis det passer bedre. Top og Left er her omregnet til cm. Målene går fra det øverste venstre "håndtag" på WordArt'en, når den er markeret. Da formen er buet, må du prøve dig frem til den rigtige placering.
Avatar billede dsj1972 Juniormester
17. december 2009 - 10:01 #5
Hej Lene,

Ja der skal nok lige prøves lidt frem. Men det er vist den vej vi skal.

Lige et lille tillægs spørgsmål da du lyder til at kende Word rigtig godt.....kan man om muligt have 4-5 sider i et dokument hvor nogle skal være "liggende" og andre "Stående"?? Og kan man så i kode bestemme hvilken dokument side kode tekst skal skrives til her tænker jeg på WordArt koden. Tænkte at det måske var noget med ActiveDocument(2).Add.text eks. for at det er side 2.
Eller noget i den dur´.
Avatar billede Lene Fredborg Ekspert
17. december 2009 - 13:21 #6
Sider som sådan eksisterer ikke i Word. Det er en lang tekst, som brydes om fortløbende, så dermed er det i almindelighed ikke nogen god idé at prøve at referere til sider i VBA.

Sideorientering er en egenskab ved sektioner. Du kan vende sider anderledes det at indsætte sektionsskift og via Sideopsætning vende den enkelte sektion vandret i stedet for lodret.

I VBA kan du referere til sektioner. Hvis du i kodelinjen
            "Arial Black", 36#, msoFalse, msoFalse, 150, 250)

tilføjer information om, til hvilket afnsit din WordArt skal forankres, kan du styre, hvilken side den indsættes på - I eksemplet her bliver WordArt indsat på den side, hvor sektion 2 starter og bliver forankret til første afsnit i sektionen:

            "Arial Black", 36#, msoFalse, msoFalse, 150, 250, Anchor:=ActiveDocument.Sections(2).Range.Paragraphs(1).Range)

Du kan også f.eks. på forhånd klikke i det afsnit, hvor din WordArt skal forankres, og så indsætte den med ankeret i det afsnit:

            "Arial Black", 36#, msoFalse, msoFalse, 150, 250, Anchor:=Selection.Range)

Et indsat objekt vil altid være på samme side som det afsnit, det er forankret til.
Avatar billede dsj1972 Juniormester
07. februar 2010 - 00:34 #7
Hej Lene,

Undskyld mange gange at jeg ikke har svaret tilbage på denne.

Jeg forsøgte din kode og fik det til at spille rigtig godt må jeg sige, dog var den meget langsom, næsten for langsom at jeg til sidst valgte at tage den af og finde alternativ som en tekstboks istedet sat på en flot måde.

Nu bøvler jeg så bare tilbage med det med at kunne skrive på flere dokumenter alternativt en måde at kunne sammenflette flere dokumenter sammen til 1.
Men den laver jeg i et nyt spørgsmål.

Men du skal da have dine velfortjente point, så smid lige svar.

mvh dsj
Avatar billede dsj1972 Juniormester
07. februar 2010 - 01:12 #8
Der kan kigges med på dette spm

http://www.eksperten.dk/spm/900892
Avatar billede Lene Fredborg Ekspert
07. februar 2010 - 10:43 #9
Svar kommer her.
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
Tag et kursus i Word og øg effektiviteten

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