Retos Software-Chuchi



Services

Praxis-Rezepte

Kontakt
E-Mail
Home

























 
Innovative Verpflegung für Ihre Computer
Rezepte -> Microsoft Access -> Access-VBA -> Office-Automation -> Rechtschreibprüfung in der eigenen Anwendung
 

 
 

Rechtschreibprüfung in der eigenen Anwendung

Eine eigene Rechtschreibprüfung zu entwickeln ist mit Sicherheit eine anspruchsvollere Übung. Aber wieso neu erfinden, was bereits zur Vefügung steht? Microsoft Word bietet bereits eine vollständig integrierte Rechtschreibprüfung, es empfiehlt sich diese zu Benutzung.

Eine ziemlich simple Funktion überprüft ab jetzt die Rechtschreibung in ihrer Anwendung:

Function CheckSpelling( _
strText As String, _
Optional bolIgnoreUpperCase As Boolean = True)
As Boolean

'Deklaration
Dim bolRetVal As Boolean
Dim wrdApp As Word.Application

'Init
bolRetVal = True

If Len(strText) > 0 Then
'Word-Instanz anlegen
Set wrdApp = New Word.Application

'Rechtschreibprüfung von Word aufrufen
bolRetVal = wrdApp.CheckSpelling(strText, , bolIgnoreUpperCase)

'Word-Instanz freigeben
wrdApp.Quit 0
Set wrdApp = Nothing
End If

'Rückgabe
CheckSpelling = bolRetVal

End Sub

Die Funktion kann wie folgt aufgerufen werden:

=CheckSpelling([Text], IgnoreUpperCase)

Argumente
[Text] = Zuprüfender Text
IgnoreUpperCase = Ja/Nein, ob Grossschreibung beachtet werden soll.

Rückgabe:
True, wenn alles in Ordnung. False, wenn Fehler in der Rechtschreibung.

Die Funktion ist relativ einfach, hat aber ein Performance-Problem, da die Word-Instanz jedesmal geladen werden muss. Das zeitraubende Erzeugen des Word-Objekts könnte eingespart werden, wenn dieses nicht jedesmal gelöscht würde, und beim Aufruf geprüft würde ob noch eine Instanz im Speicher liegt.

Dazu wird am besten ein neuer Parameter eingeführt, der entscheidet, ob die Instanz am Schluss gelöscht werden soll:

Function CheckSpelling( _
strText As String, _
Optional bolIgnoreUpperCase As Boolean = True, _
Optional bolReUseWord As Boolean = True)
As Boolean

On Error Resume Next

'Deklaration
Dim bolRetVal As Boolean
Static wrdApp As Word.Application

'Init
bolRetVal = True

If Len(strText) > 0 Then
'Wenn nötig, neues Word-Instanz anlegen
If wrdApp Is Nothing Then
Set wrdApp = New Word.Application
wrdApp.DisplayAlerts = 0
wrdApp.ScreenUpdating = False
End If

'Rechtschreibprüfung von Word aufrufen
bolRetVal = wrdApp.CheckSpelling(strText)
End If

'Wenn gewünscht, Word-Instanz freigeben
If bolReUseWord = False Then
wrdApp.Quit 0
Set wrdApp = Nothing
Enf If

On Error Goto 0

'Rückgabe
CheckSpelling = bolRetVal

End Sub

Die Funktion kann wie folgt verwendet werden:

Aufruf Rückgabe Word-Instanz
=CheckSpelling("Hallo Welt")
True
Bleibt im Speicher
=CheckSpelling("Hallo Weltt")
False
Bleibt im Speicher
=CheckSpelling("Hallo welt", False)
False
Bleibt im Speicher
=CheckSpelling("Hallo Welt", False, False)
True
Wird gelöscht
=CheckSpelling("", , False)
True
Wird gelöscht

 
 

 

Benötigen Sie Unterstützung oder weiterführende Informationen, gerne helfen wir Ihnen weiter, reden Sie doch einfach mit uns.

Die Informationen dieser Seite dürfen, gemäss unseren Nutzungsbestimmungen, kostenlos weiterverwendet werden.

 

Reto Maurer's Software-Chuchi
Seestrasse 26
CH-8802 Kilchberg-Zürich
Telefon: +41 79 635 47 31
E-Mail:info@software-chuchi.ch

 

   

URL: http://www.software-chuchi.ch/praxis/microsoft_access_vba_office_automation_rechtschreibpruefung.php
Haben Sie technische Probleme oder Bemerkungen, wenden Sie sich an unseren Webmaster
© 2000-2004 Reto Maurer's Software-Chuchi. Alle Rechte vorbehalten.