22. februar 2002 - 10:03Der er
16 kommentarer og 1 løsning
Anvendelse af autokorrektur i en formulars tekstfelter
MS Word 2000 – SR 1 (DK)
Jeg har oprettet en skabelon og har her oprettet et antal tekstfelter (værktøjslinien Formularer). Formularen er beskyttet (Funktioner, Beskyt dokument) således, at der kun tillades indtastning i tekstfelterne.
Mit problem er, at autokorrekturen bliver deaktiveret, når skabelonen skal anvendes.
Er der nogen som har løsningen til at aktivere autokorrekturen.
Hvis løsningen er VBA-kodning, bedes svaret venligst være detaljeret (da jeg ikke er så stærk i VBA).
Problemet har virkelig voldt mig problemer, så jeg vil være meget taknemmelig for et brugbart svar. På forhånd tak.
Du har dog den mulighed, at du kan lave formularfelterne om til almindelig tekst, hvorefter autokorrekturen (og stavekontrol) vil virke. Denne makro kunne ligge på en knap som brugeren trykker på eller ligge på et formularfelt som en indgangsmakro eller udgangsmakro - du skal så huske at sikre dig at brugeren som det sidste taster sig hen til formularfeltet, hvis du vælge makroen på et formularfelt
Kære RVM. Min afvisning gælder dit første svar. Hvis dokumentet skal afbeskyttes, aktiveres autokorrekturen, men dette vil ikke have indflydelse på de indtastede data i tekstfeltet.
Jeg vil lige studere dit andet svar, og give en tilbagemelding herom.
Kære RVM. Dit svar kl. 13.26:14 må jeg vist også afvise. Hvis formularfelterne skal ændres til almindelig tekst (hvilket jeg ikke ved hvordan gøres), kan autokorrekturen aktiveres. Dette vil dog fortsat ikke have nogen indflydelse på den allerede indtastede tekst (i de oprindelige tekstfelter).
I dit svar kl. 13:30:44 skriver du en VBA kode med bemærkningen om at koden fungerer. I kommentaren kl. 13:32:09 skriver du, at du var for hurtig på aftrækkeren. Jeg afviser derfor dit svar. Jeg vil med glæde give dig points, såfremt VBA koden fungerer. Som tidligere nævnt er VBA ikke min stærke side. Derfor - hvis VBA koden fungere, og du kan fortælle mig, hvor og hvordan jeg skal anvende koden, så skal du nok få de lovede points :-). Venligst Claus Lüchow
Jeg har lige testet lidt mere. Er det OK at formularfelterne bliver lavet om til tekst? Hvis det er OK, så kan jeg hente teksten i formularfeltet, slette formularfeltet og sætte teksten ind som normal tekst - dette kræver dog noget mere kode, men kan sagtens lade sig gøre.
Det er helt i orden at formularfelterne bliver lavet om tekst. Det vitale er, at brugerne udfylder tekstfelterne til at starte med, og at de indtastede data efterfølgende tilpasses autokorrekturens opbygning.
Set doc = ActiveDocument 'Sikerer at dokumentet ikke er skrivebeskyttet If doc.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect End If
'Løber alle formularfelter igennem For Each fr In Application.ActiveDocument.FormFields 'Går til formularfelt ActiveDocument.Bookmarks(fr.Name).Select 'Lægger indholdet af formularfeltet ind i en variabel var = fr.Result 'Sletter formulafeltet fr.Delete 'Indsætter teksten fra variablen var Selection.Text = var Next fr
'Går til toppen af dokumentet Selection.HomeKey Unit:=wdStory
Jeg har nu prøvet din VBA kode i en makro. Det ser bestemt lovende ud, men det ønskede resultat opnåes fortsat ikke.
Din kode ophæver godt nok tekstfeltetne, men autokorrekturen retter fortsat ikke den tekst som før var indtastet i tekstfelterne. Denne test er udført på et nyoprettet dokument, og sikkerhedsniveauet i Word er sat til "lav". Jeg har indsat koden i en makro oprettet til formålet.
Hvis jeg opretter en tilsvarende makro i et eksisterende dokument, meldes der om fejl. Debuggeren kan ikke lide kommandoen "ActiveDokument.Bookmarks(fr.Name).Select".
Jeg må desværre fortsat afvise dit svar (selvom jeg er dig meget taknemmelig for dine forsøg). Håber at du fortsat har mod på at prøve.
Autokorrekturen aktiveres desvære kun, når man indtaster og den tekst der nu er i dokumenterne er jo ikke lige blevet indtastet. Det min kode gør, er at den gør det muliget for autokorrekturen at fortælle hvor den har fundet uhensigtsmæsigheder, men den retter dem ikke :-(
m.h.t. "ActiveDokument.Bookmarks(fr.Name).Select", så kræver koden at alle formularfelter har bogmærker tilknyttet.
Right, som du måske aner, er jeg temmelig nybegynder i dette spændende forum. Points coming up ;-).
Ok, om ikke andet, så er løsningen brugbar til anvendelse af stavekontrollen i en beskyttet formular.
Jeg takker meget for din indsats.
Venligst Claus Lüchow :-)
Synes godt om
Ny brugerNybegynder
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.