August 31, 1995
Microsoft® Word for Windows® includes a spelling checker that you can invoke from within your Microsoft Visual Basic® application. This article shows how you can use OLE Automation in a Visual Basic program to check the spelling of text.
Within a Microsoft® Visual Basic® program, you can use Microsoft Word for Windows® as an OLE Automation server to check the spelling in a Text Box control. Your Visual Basic program can send commands to Microsoft Word, which in turn carries out those commands. When the spelling checker has finished its work, the focus of control returns to your Visual Basic program.
In the example program below, the contents of the Text Box control need to be checked for spelling. To do this, you execute a CreateObject statement to tell Microsoft Windows to run Microsoft Word. Next, you need to tell Word to create a new document and to copy the text from the Text Box to this document. You accomplish both of these functions by running the WordBasic FileNew and Insert commands, respectively.
After the text has been copied to the Word document, it can be checked for spelling. You run the ToolsSpelling command in Microsoft Word to start the spelling checker.
When you have finished checking the document for spelling errors, click the OK command button to close the spelling checker in Microsoft Word. Then, run the EditSelectAll and FileExit commands to copy the newly revised text back to your Visual Basic Text Box, which ends the OLE Automation process.
This program shows how to use the spelling checker in Microsoft Word from within a Visual Basic application.
Private Sub Command1_Click()
Dim WB As Object
Dim OldText As String
Dim NewText As String
Dim I As Integer
Dim CH As String * 1
NewText = ""
On Error Resume Next
Set WB = CreateObject("Word.Basic")
If Err Then
MsgBox Error$
Exit Sub
End If
WB.FileNew
WB.Insert Text1.Text
WB.ToolsSpelling
WB.EditSelectAll
OldText = WB.selection()
WB.FileExit 2
For I = 1 To Len(OldText)
CH = Mid$(OldText, I, 1)
NewText = NewText + CH
If CH = Chr$(13) Then NewText = NewText + Chr$(10)
Next I
Text1.Text = NewText
End Sub
Run the example program by pressing F5. Type some text in the Text Box control and then click the Command Button control. Visual Basic runs Microsoft Word, copies the text from the Text Box control to a new document, and invokes Word's spelling checker. After you have finished checking the text, the newly revised text is copied back to the Text Box control.