Avatar billede julieh Nybegynder
18. december 2002 - 12:27 Der er 13 kommentarer og
2 løsninger

VB Newbie - skabelon til word

Jeg sidder og er ved at oprette en Skabelon til word, hvor den skal komme frem med et vindue hvor man kan taste navn, adresse osv...
jeg er nået så langt som til at have "designet" formen, altså vinduet med labels, tekst felter og en ok og cancel knap, men så kan jeg heller ikke mere.
Så mit spørgsmål er hvordan går jeg den til at fungere så den kommer frem når man vælger den skabelon som jeg er ved at lave og hvordan får man den til at sætte den tekst brugeren skriver i tekst felte over i word og hvordan får jeg knapperne til at virke ?

(og ja jeg ved jeg burde gå ud og købe mig en VB for dummies eller noget.... )
Avatar billede martin_moth Mester
18. december 2002 - 15:16 #1
Princippet er at oprette nogle bogmærker i word-skabelonen. Disse bogmærker kan så ændres fra dit "vindue" (som jeg kalder en userform :-)

Altså:

  klik på det sted i dokumentet, hvor du vil indsætte et bogmærke.
  Klik på Bogmærke i menuen Indsæt.
  Skriv eller vælg et navn under Bogmærkenavn, vælg f.eks. "Fornavn".
  Klik på Tilføj.

Herefter kan du lave en userform der ændrer indholdet af bogmærket:

  Selection.GoTo What:=wdGoToBookmark, Name:="Fornavn"
  Selection.TypeText Text:=Textbox1.Text

Det kræver naturligvis, at der er en textbox på din userform med navnet TextBox1... Koden ovenfor indsætter det brugeren har skrevet i textboxen i dit bookmark.

Voilà!

/Martin
Avatar billede julieh Nybegynder
18. december 2002 - 15:39 #2
Det lyder som noget jeg kan forstå. Mit problem er nu bare at den siger at macros ikke er enabled ?
Avatar billede julieh Nybegynder
18. december 2002 - 15:55 #3
Ok,det med macroerne løste sig.
Men nu har jeg skrevet som du skrev, men der sker ikke rigtigt så meget, det er jo meningen at jeg skal skrive i den userform, navn, adresse osv. og så når jeg trykker på den ok knap jeg har lavet så skal den smide texten ind ved bogmærkerne ?
Avatar billede knico Nybegynder
18. december 2002 - 17:28 #4
I dit skabelon projekt skal du i koden for ThisDocument lave subrutinen
_____________________
Document_New()
  UserForm1.Show
End Sub
_____________________

Det kalder din Form frem (hvis den altså hedder UserForm1).

Koden som Martin gav dig skal stå i koden for Command1_Click
Avatar billede martin_moth Mester
18. december 2002 - 23:14 #5
Og afslutningsvist kan du fjerne din form ved userform1.hide - f.eks. når brugeren har trykket OK :o)

Kom igen hvis det ikke virker som det skal...
Avatar billede julieh Nybegynder
19. december 2002 - 08:29 #6
Nu får jeg en fejl der hedder :
Compile error :
Expected: =

når jeg compiler den ?
Avatar billede julieh Nybegynder
19. december 2002 - 08:32 #7
Hov, jeg skulle skrive Private Sub foran Document_New() så kan jeg compile den, men den gør stadig ikke rigtigt noget når jeg trykker på ok
Avatar billede julieh Nybegynder
19. december 2002 - 08:36 #8
Nå, jeg skal altså bare stille spørgsmålene selv og prøve mig frem *g*

Så langt så godt, nu kan jeg få den til at smide det jeg skriver ind i dokumentet, så skal jeg bare lige have Cancel knappen til at virke og så lige forstå det der med userform1.hide
Avatar billede martin_moth Mester
19. december 2002 - 09:42 #9
Når brugeren har trykket OK går jeg ud fra, at de indtastede data overføres til dokumentet, og at userformen så skal forsvinde. Eller måske vil du have en knap, der hedder "Luk dette vindue", og der indsætter du Userform1.hide - det er lige ud ad landevejen - der hvor du vil skjule (hide) din userform indsætter du koden "userform1.hide"

Den cancle knap - hvordan skal den virke?
Hvis du vil have en cancle-knap, der sletter alt der blev sat ind i DOKUMENTET, da du trykkede OK, så kan du lave en sub, der er næsten magen til den for din OK-knap, blot med linier såsom:

  Selection.GoTo What:=wdGoToBookmark, Name:="Fornavn"
  Selection.TypeText Text:=""

Hvis du bare vil have en cancle-knap, der nulstiller hvad der er indtastet på FORMEN, er det jo bare at ændre teksten for alle dine tekstfelter til en tom streng, f.eks:

  Textbox1.Text:=""

/Martin
Avatar billede julieh Nybegynder
19. december 2002 - 09:53 #10
I er bare geniale, tak for hjælpen.

Jeg har dog et par små ting, når jeg skriver i den userform jeg har lavet og trykker tab der ned igennem springer den også fint videre til det næste felt, bortset fra det næst sidste felt, der springer den det sidste felt over og hopper ned til ok knappen.

Og så tænkte jeg på om man kan sætte "dodumentet" sådan at den overskriver når man begynder at skrive selve brevet, alstå ligesom hvis man har trykker på Insert. Jeg har nemlig lavet sådan at når man trykker ok, springer cursoren automatisk til et start bogmærke hvor man så kan begynde at skrive brevet, men den skal jo helt ikke rykke afsenderen ned på næste side når man begynder at skrive.
Avatar billede martin_moth Mester
19. december 2002 - 10:08 #11
Hver kontrol på din form, der kan "klikkes på", har to egenskaber: Tabindex og Tabstop

Tabstop kan sættes tilTrue/false, og bestemmer, om fokus skal flyttes til denne kontrol, når du bruger Tab.

Tabindex angiver rækkefølgen på hvilke kontroller der får fokun, når du trykker tab.

Mht. "overskriv", er det en ret klam løsning efter min mening - hvad så når du skriver for meget - så overskriver du afsenderadressen. Du bør hellere sikre, at afsenderen ikke ryger ned på næste side på anden vis, det kan du jo gøre ved - for eksempel - at putte afsenderen i en textbox.
Avatar billede julieh Nybegynder
19. december 2002 - 10:35 #12
Yes så virker det med tab.

Du har jo ret. Men en textbox siger du. er det så en som jeg opretter i word `?

Jeg har i mit word dokument skrevet
med venlig hilsen
firmanavn
I (bogmærke med afsender som man taster ind i formen)

Men så mener du at jeg skal lave en text box med de tre ting i ? og så vil de blive stående på det sted ?
Avatar billede martin_moth Mester
19. december 2002 - 10:48 #13
I word: Indsæt > Tekstboks. Det har intet med VBA at gøre :)
Avatar billede martin_moth Mester
19. december 2002 - 10:55 #14
Herefter kan du højreklikke på tekstboksen og bestemme dens egenskaber

Du kan også lade være med at bruge en tekstbox, og sætte din "venlig hilsen" øverst på siden, så den rykker sig ned når du skriver noget
Eller du kan oprette det hele dokumentet som en tabel med skjulte rammer, så alting altid står rigtigt i forhold til hinanden. Eller du kan bruge overskriv. Eller...

Brug den løsning du helst vil have - der er masser af muligheder, og det er smag og behag, hvad der er bedst.

Held og lykke, og glædelig jul, Martin
Avatar billede julieh Nybegynder
19. december 2002 - 11:05 #15
Tak for hjælpen og god jul til dig også :o)
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
Kurser inden for grundlæggende programmering

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