Ovaj tekst i VBA (Visual Basic for Application) kod će vam prikazati kako da otvorite MS Word dokument u okviru neke druge aplikacije. Trik je u tome da napišete class module (nazvan WordWrapper, kao u donjem primeru) koji će reagovati na događaj izazvan od strane Word-a, koristeći ključnu reč WithEvents. U nastavku imate kod same WordWrapper class-e i demonstraciju upotrebe koda.
WordWrapper Class |
Private WithEvents
wrdApp As
Word.Application |
Private wrdDoc As Word.Document |
Private strDocName As String |
Public Sub NewDoc() |
| Set wrdDoc = wrdApp.Documents.Add |
| strDocName = wrdDoc.Name |
End Sub |
Public Sub AddText(strNew As String) |
| wrdDoc.Range.InsertAfter strNew |
End Sub |
Public Sub Preview() |
| wrdDoc.PrintPreview |
| wrdApp.Visible = True |
End Sub |
Public Sub Quit(blnSaveChanges As Boolean) |
| On Error Resume Next |
| If Not wrdApp Is Nothing Then |
| wrdApp.Quit SaveChanges:=blnSaveChanges |
| End If |
| Err.Clear |
End Sub |
Private Sub Class_Initialize() |
| Set wrdApp = New Word.Application |
End Sub |
Private Sub Class_Terminate() |
| If Not wrdApp Is Nothing Then |
| wrdApp.Quit False |
| End If |
End Sub |
Private Sub wrdApp_Quit() |
| Set wrdDoc = Nothing |
| Set wrdApp = Nothing |
End Sub |
Private Sub wrdApp_WindowActivate( _ |
| ByVal Doc As Word.Document, _ |
| ByVal Wn As Word.Window) |
| If strDocName = Wn.Caption Then |
| wrdApp.Quit False |
| End If |
End Sub |
Da bi testirali kod, možete iskoristiti jednostavnu formu sa dva dugmića (command button) nazavanim cmdStartWord i cmdStopWord koje sadrže sledeće procedure:
Dim ww As WordWrapper
Private Sub cmdStartWord_Click() |
| Set ww = New WordWrapper |
| With ww |
| .NewDoc |
| .AddText "Ovo je Test!" |
| .Preview |
| End With |
End Sub |
Private Sub cmdStopWord_Click() |
| If Not ww Is Nothing Then |
| ww.Quit False |
| Set ww = Nothing |
| End If |
End Sub |