Avatar billede -ulli- Nybegynder
20. februar 2002 - 13:58 Der er 4 kommentarer og
1 løsning

vba og word

Hej

Jeg er lige startet på VBA og har et simpelt(?) spørgsmål.

Jeg har lavet en form med 3 radiobuttons. I den vælger jeg en af de valgmuligheder, og trykker OK.

Jeg har lavet if-sætninger der tjekker hvilken jeg har valgt, og alt efter hvad jeg vælger, sætter den en variabel.

Spørgsmålet er så:
Hvordan får jeg den variabel overført til Word?

Og hvordan skriver jeg i Word dokumentet via VBA? Hvis man altså kan dette?

Post gerne links til guides/tutorials.
Avatar billede martin_moth Mester
20. februar 2002 - 15:22 #1
Har ingen erfaring med kombinationen VBA og word. Men jeg optog en macro, der skriver noget tekst, og lidt puslen gav følgende kode:

Sub Makro1()
  Dim Tekst As String
  Tekst = "Indhold af variabel"
  Selection.TypeParagraph 'Linieskift
  Selection.TypeText Text:=Tekst
  Selection.TypeText Text:="  man kan også bare skrive tekst direkte..."
End Sub

Jeg går ud fra at det er det du mener med "variabel overført til Word" - altså at indholdet af variablen skal skrives i dokumentet. /Martin
Avatar billede jesperthomsen Nybegynder
21. februar 2002 - 09:22 #2
Er det noget du laver fra VB? Altså, hvor du har et Word-dokument åbnet fra VB og så ønsker at manipulere med det? Jeg har en klasse eller to til formålet så lad mig det vide hvis det er noget i den stil du har brug for.
Avatar billede -ulli- Nybegynder
21. februar 2002 - 09:39 #3
martin_moth: Ja, det er faktisk noget af det rigtige. Jeg venter med at give dig point.

Jeg er ved at "bikse" en skabelon sammen.

Når man starter skabelonen skal den køre makroen automatisk (hvis dette kan lade sig gøre?), og så vælger man hvilket sprog skabelonen skal være på.

Derefter skal dokumentet genereres.

Men.. Kan man godt lave tabeller via VBA?

Eller.. Er det ikke muligt at lave dokumentet først, derefter køre makroen, hvor man vælger sprog, og bagefter erstatter den de ord der f.eks. står på dansk til engelsk? Nogen ideer? Jeg har prøvet at lave et dokument med labels i, men jeg når jeg kører makroen, ændrer den ikke caption på dem, selvom jeg gør det rigtigt (har rodet med VB, så ved godt hvordan det foregår)..

Håber I har nogle ideer :)
Avatar billede martin_moth Mester
21. februar 2002 - 10:35 #4
I VBA til Excel kan man lave macroer som

Sub Auto_Open() 'Der er en tilsvarende Auto_Close()
  "Velkommen til dette regneark!"
End Sub

Ovenstående macro køres automatisk, når regnearket åbnes (eller lukkes ved Auto_Close). Mon man ikke kan gøre det samme i Word. Hvis det ikke virker, kan du jo bare selv starte din macro ved f.eks. at lave en trykknap.

Og JA, du kan sagtens lave tabeller i word fra VBA. Som udgangspunkt kan du lave ALT fra VBA. Den nemmeste måde at finde ud af tingene (synes jeg) er at indspille en macro, hvor du f.eks. opretter en tabel, og derefter kikker på og retter i koden så det passer til netop dit behov. Ved at gøre ovenstående kan du selv finde frem til, at man kan oprette f.eks. en 4x4 tabel ved følgende kode:

ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:=4

Mht. Labels, så tyder det på at du alligevel ikke gør det rigtigt, hvis caption ikke ændres som du ønsker det ;-) Jeg kan i hvert fald godt lave en label, som jeg skifter caption på når jeg kører koden:

  Label1.Caption = "Ny tekst på Label1"

/Martin
Avatar billede -ulli- Nybegynder
21. februar 2002 - 15:44 #5
Jeg siger mange tak for hjælpen. Det var hvad jeg skulle bruge for at komme igang :)
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