home account info subscribe login search My ITKnowledge FAQ/help site map contact us


 
Brief Full
 Advanced
      Search
 Search Tips
To access the contents, click the chapter and section titles.

Visual Basic 6 Programming Blue Book: The Most Complete, Hands-On Resource for Writing Programs with Microsoft Visual Basic 6!
(Publisher: The Coriolis Group)
Author(s): Peter G. Aitken
ISBN: 1576102815
Publication Date: 08/01/98

Bookmark It

Search this book:
 
Previous Table of Contents Next


OLE Automation With An Embedded Object

To demonstrate OLE automation with an embedded object, I will use a Microsoft Word document object. The technique of combining OLE embedding with OLE automation is both powerful and flexible. This simple demonstration gives you a taste of what is possible. The program does the following:

  Creates a blank Word document embedded in the Visual Basic program’s OLE control.
  When the user clicks on a Command Button, starts the letter by entering the date, return address, and greeting.
  Activates the document for in-place editing, permitting the user to add the body of the letter and format it with Word’s tools and commands.
  When the user clicks on another Command Button, finishes the letter by adding the closing.
  When the user clicks on the Done button, asks whether the letter should be printed and saved. If the user requests either one, uses OLE automation commands to instruct Word to print or save the document.

Figure 10.9 shows this demonstration program, displaying the document activated for editing. Notice that the activated document displays Word’s menu and provides access to Word’s formatting and editing commands.

The program’s objects and properties are presented in Listing 10.4, and the code is in Listing 10.5. Rather than walk you though the code a line at a time, I suggest you try to figure out what’s going on by yourself. The code is actually fairly simple, so you shouldn’t have any problems.


Figure 10.9  OLEAUTO2 showing the Word document activated for editing.

Listing 10.4 Objects and properties in OLEAUTO2.FRM.

Begin VB.Form Form1
   Caption        =   “Form1”
   LinkTopic      =   “Form1”
   Begin VB.CommandButton Command1
      Caption         =   “&Done”
   End
   Begin VB.CommandButton Command1
      Caption         =   “&Finish Letter”
      Index           =   1
   End
   Begin VB.CommandButton Command1
      Caption         =   “&Begin Letter”
      Index           =   0
   End
   Begin VB.OLE OLE1
   End
End

Listing 10.5 Code in OLEAUTO2.FRM.

Option Explicit
‘ The Object variable.
Dim WordDoc As Object
Const vbOLEPrimary = 0
Private Sub Command1_Click(Index As Integer)
Dim Reply As Integer
Dim s1 As String, s2 As String
‘ Five tabs.
s1 = Chr$(9) & Chr$(9) & Chr$(9) & Chr$(9) & Chr$(9)
Select Case Index
    Case 0      ‘ Begin Letter.
        ‘ Insert the date into the document.
        WordDoc.Insert Date$
        WordDoc.InsertPara
        ‘ Insert two blank lines.
        WordDoc.InsertPara
        WordDoc.InsertPara
        ‘ Insert the return address preceded by tabs.
        s2 = s1 & “P.O. Box 1234”
        WordDoc.Insert s2
        WordDoc.InsertPara
        s2 = s1 & “Anytown, NC 12345”
        WordDoc.Insert s2
        WordDoc.InsertPara
        ‘ Insert two blank lines and the greeting.
        WordDoc.InsertPara
        WordDoc.InsertPara
        WordDoc.Insert “Dear ”
        ‘ Activate for in-place editing.
        OLE1.DoVerb (vbOLEPrimary)
  
    Case 1      ‘ Finish Letter.
        ‘ Add the salutation at the end of the letter.
        WordDoc.InsertPara
        s2 = s1 & “Yours truly,”
        WordDoc.Insert s2
        WordDoc.InsertPara
        WordDoc.InsertPara
        WordDoc.InsertPara
        WordDoc.InsertPara
        s2 = s1 & “Peter G. Aitken”
        WordDoc.Insert s2
        WordDoc.InsertPara
        ‘ Activate for in-place editing.
        OLE1.DoVerb (vbOLEPrimary)
  
    Case 2      ‘ Done
        ‘ Does the user want to print? If so, instruct
        ‘ Word to print with the default settings.
        Reply = MsgBox(“Print letter?”, vbYesNo + vbQuestion)
        If Reply = vbYes Then WordDoc.FilePrintDefault
        ‘ Does the user want to save? If so, instruct
        ‘ Word to display the Save As dialog box.
        Reply = MsgBox(“Save letter?”, vbYesNo + vbQuestion)
        If Reply = vbYes Then
            WordDoc.FileSave
        End If
        ‘ Destroy the object.
        Set WordDoc = Nothing
        End
End Select
End Sub
Private Sub Form_Load()
‘ Position the OLE control to fill the width of the form
‘ and 3/4 of the height.
OLE1.Top = 0
OLE1.Left = 0
OLE1.Width = ScaleWidth
OLE1.Height = ScaleHeight * 0.75
‘Create a new embedded Word document.
OLE1.CreateEmbed “”, “Word.Document.6”
‘ Activate the object(required for OLE automation).
OLE1.DoVerb (vbOLEPrimary)
‘ Create the OLE automation object.
Set WordDoc = OLE1.object.Application.WordBasic
End Sub


Previous Table of Contents Next


Products |  Contact Us |  About Us |  Privacy  |  Ad Info  |  Home

Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc.
All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.