2013-08-19 31 views
2

我使用後期綁定來創建MsWord對象,從而避免必須添加會導致Word的不同版本出現問題的引用。如何在使用後期綁定時聲明方法

Set GetWordObject = CreateObject("Word.Application") 

正因爲如此,在VBA編譯器無法識別的MSWORD常數和我一直在宣稱他們自己如下:

Public Enum wdAutoFitBehaviour 
    wdAutoFitContent = 1 
    wdAutoFitFixed = 0 
    wdAutoFitWindow = 2 
End Enum 

Public Enum wdSaveOptions 
    wdDoNotSaveChanges = 0 
    wdPromptToSaveChanges = -2 
    wdSaveChanges = -1 
End Enum 

Public Enum WdParagraphAlignment 
    wdAlignParagraphleft = 0 
    wdAlignParagraphCenter = 1 
    wdAlignParagraphRight = 2 
End Enum 

Public Enum WdTableDirection 
    wdTableDirectionRtl = 0 
    wdTableDirectionLtr = 1 
End Enum 

Public Enum WdGoToItem 
    wdGoToTable = 2 
End Enum 

Public Enum WdGoToDirection 
    wdGoToNext = 2 
    wdGoToPrevious = 3 
End Enum 

Public Enum WdUnits 
    wdParagraph = 4 
    wdCell = 12 
End Enum 

Public Enum WdDocumentViewDirection 
    wdDocumentViewLtr = 1 
    wdDocumentViewRtl = 0 
End Enum 

我的問題是,當我需要使用MSWORD方法如CentimetersToPoints

With objWordApp.ActiveDocument.PageSetup 
    .TopMargin = CentimetersToPoints(0.5) 
    .BottomMargin = CentimetersToPoints(0.5) 
    .LeftMargin = CentimetersToPoints(0.5) 
    .RightMargin = CentimetersToPoints(0.5) 
    .PageWidth = CentimetersToPoints(6.5) 
    .PageHeight = CentimetersToPoints(11) 
End With 

如何聲明該方法,以便編譯器不應該標記它?

回答

1

CentimetersToPoints是應用程序對象的方法。使用應用程序對象變量的名稱限定方法名稱。

With objWordApp.ActiveDocument.PageSetup 
    .TopMargin = objWordApp.CentimetersToPoints(0.5) 
+1

我不知道我定義自己的常量(見上面)是否也可以被類似地限定。我看到它們屬於'Word'庫中的枚舉,這意味着我必須將每個枚舉聲明爲一個對象? ...不值得我一會兒。 –