SandPiper
SandPiper

Reputation: 2906

Using VBA to Create Word Label Sheets, Getting Extra Unwanted Document

I am trying to use VBA to create a label form in Word using data provided from Access. This VBA code works:

Dim appwd As Object
Dim oDoc As Object

Set appwd = CreateObject("Word.Application")
With appwd
    .Documents.Add
    Set oDoc = .MailingLabel.CreateNewDocumentByID(LabelID:="1359804671")
    .Visible = True
    .Activate
End With

oDoc.Activate

'Remaining code that creates labels

However, it creates and opens the blank Document1 as well as the Labels2 document I want. How do I prevent it from creating the unwanted Document1, or at the very least close that document again without saving it?

If I comment out the .Documents.Add, then I get

Run-time error '4605':

This method or property is not available because a document window is not active.

Upvotes: 2

Views: 461

Answers (1)

Erik A
Erik A

Reputation: 32632

Unfortunately, the .MailingLabel object requires a document to be open, so the best alternative is to just close that document as soon as you create your desired one:

Dim appwd As Object
Dim oDoc As Object
Set appwd = CreateObject("Word.Application")
With appwd
    .Documents.Add
    Set oDoc = .MailingLabel.CreateNewDocumentByID(LabelID:="1359804671")
    .Documents(1).Close SaveChanges:=0 'wdDoNotSaveChanges, close the first document
    .Visible = True
    .Activate
End With

oDoc.Activate

Upvotes: 2

Related Questions