Just nu i M3-nätverket
Gå till innehåll

VB script i word, eller....


Cat woman

Rekommendera Poster

Sitter här och håller på att bli smått galen!

Ska göra ett formulär i word och det ska ju vara teoretiskt möjligt att använda sej av vb script för att kolla att användaren inte lämnar en textruta tom, har jag rätt???

Jag kan lite vb, men är desto sämre på word.

Hoppas verkligen att jag får ett svar idag.

 

-Panik slagen katt-

Länk till kommentar
Dela på andra webbplatser

Det enklaste är att koppla ett makro till textfältet.

1. skapa ett lämligt makro (se 3)

 

2.Högerklicka på fältet, välj "egenskaper"

"kör makro" - vid avslutning.

Välj ett makro från listan.

 

Att lämpligt makro kan se ut någonting i den här stilen

'*****************

Sub tom_text()

'1. Kontrollera om "text1" (namnet på ditt textfält, syns när du högerklickar) är tomt

If ActiveDocument.FormFields("text1").Result = "" Then

'om tomt, skicka upp etn msg box.

MsgBox ("Fyll i fältet Klant.")

End If

End Sub

'*****************

 

Det vore naturligtvis bäst om man kunde använda ActiveFormField eller liknande, men jag har inte hittat något.

 

/Magnus

 

 

Länk till kommentar
Dela på andra webbplatser

 

Tusendes tack!

Det funkar fint, fast jag är lite ovänner med det här...

 

En grund sak är ju att efter MsgBox ska samma Text ruta hamna i focus, men så lätt var det inte..

Med VB script ska man väll bara skriva typ Text2.SetFocus, men jag får upp felmeddelandet att objekt saknas :-(

 

- Kissen -

 

 

 

Länk till kommentar
Dela på andra webbplatser

Ingen aning.

 

ActiveDocument.FormFields("Text1").SetFocus

 

eller

 

ActiveDocument.FormFields("Text1").Select

Borde fungera.

 

Problemet är att hoppet till nästa kontroll ligger utanför makrot. Även om du lyckas med setFocus så kommer word att skicka fokus till nästa kontroll när makrot är avslutat: Kul Jul

 

Har råkat ut för något liknande någon gång.

Då gick det att sätta något värde = false. Så avslutade man hoppet till nästa kontroll. Kan inte komma ihåg vad det var bara...

 

Om du har väldigt gott om tid så kan du lägga kontrollen av värdena i nästa textruta istället. Dvs använda "vid start" istället. Låter hemsk kul eller hur?.

(iofs skulle du kunna lägga "svaret" från tom kontrollen i en global variabel och läsa av "föregående" .. ... . .

 

 

Pessimistiska hälsningar

/M

Ps

(Hunden är mäniskans bästa vän)

 

 

 

Länk till kommentar
Dela på andra webbplatser

Ok kompromiss?

 

'********************************

Sub tom_text()

Dim Form_Namn As String

If ActiveDocument.FormFields("Text1").Result = "" _

Then

ActiveDocument.FormFields("Text1").Result = _

InputBox("Var vänlig svara på fråga XX", _

"Inget svar")

End If

End Sub

'********************************

 

 

Länk till kommentar
Dela på andra webbplatser

Tack ska ni ha!!

Det gick faktiskt att få till, men det var inte mer heller....

 

Finns det ingen bra att hitta och läsa om just wordprogrammering, förutom hjälpen!?

 

Är det nån som vet?

 

- Kissen -

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

VBA-programmering i Office 2000

Jesper Ek

Pagina.se

 

VBA för dummies

Steve Cummings

IDG.e

 

VBA-programmering i Excel

Jonas Osterman

Docendo

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...