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 |
Pratite Krstaricu na www.krstarica.com