Software written to work with Microsoft Office can take
advantage of the spell checking capabilities of Microsoft Word to add spell
checking to their own application.
Word's Automation model contains
a
CheckSpelling function that lets you check the spelling of a document hosted in
Word. By using Word Automation, developers can dynamically create a new
document, add some text they want to check, and then have Word check the
spelling. This article shows you how to automate Word to provide this
functionality.
You can use this code sample from either Microsoft Visual
Basic or Microsoft Visual Basic for Applications without any changes. However,
the sample assumes that you are using a Visual Basic client to create a new
project.
Creating a spell check client
- Start Visual Basic and create a new Standard EXE project. Form1 is created by default.
- Add a TextBox control and CommandButton to
Form1.
- In the code window for Form1, add the following code:
Option Explicit
Private Declare Function CoAllowSetForegroundWindow Lib "ole32.dll" (ByVal pUnk As Object, ByVal lpvReserved As Long) As Long
Private Sub Command1_Click()
Dim oWord As Object
Dim oTmpDoc As Object
Dim lOrigTop As Long
' Create a Word document object
Set oWord = CreateObject("Word.Application")
CoAllowSetForegroundWindow oWord, 0
Set oTmpDoc = oWord.Documents.Add
' Position Word off screen to avoid having document visible
lOrigTop = oWord.Top
oWord.WindowState = 0
oWord.Top = -3000
oWord.Visible = True
oWord.Activate
' Copy the contents of the text box to the clipboard
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Clipboard.Clear
Clipboard.SetText Text1.SelText
' Assign the text to the document and check spelling
With oTmpDoc
.Content.Paste
.Activate
.CheckSpelling
' After the user has made changes, use the clipboard to
' transfer the contents back to the text box
.Content.Copy
Text1.Text = Clipboard.GetText(vbCFText)
' Close the document and exit Word
.Saved = True
.Close
End With
Set oTmpDoc = Nothing
oWord.Visible = False
oWord.Top = lOrigTop
oWord.Quit
Set oWord = Nothing
End Sub
- Compile and run the program. Press the Command1 command button to run the spell check. Word's spell check dialog
box appears to confirm the spelling of the words "mispelled", "textt",
"receive", and "resultes". After you correct the misspelled words, the text is
returned to the text box.