2017-08-17 1 views
0

Je sais dans VBA, dans un document, je peux obtenir nombre de pages en utilisant ActiveDocument.Range.Information(wdNumberOfPagesInDocument), Mais je ne peux pas trouver un équivalent dans VB.Net en utilisant Microsoft.Office.Interop.Word.
Y at-il, peut-être une autre façon que je peux atteindre le nombre de pages dans un document?Word Interop et obtenir nombre de pages

Public Class Window 
    'set form level declarations 
    Dim appPath As String 
    Dim objWordApp As New Word.Application 
    Dim objDoc As Word.Document 
    Dim errorPosition As String 
    Private Sub Window_Load(ByVal sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
     objDoc = objWordApp.ActiveDocument 
     With objDoc 
      pages = .ActiveDocument.Range.Information(wdNumberOfPagesInDocument) 
     End With 
     objDoc = Nothing 
    End Sub 
    objWordApp = Nothing 
End Class 
+0

WdInformation.wdNumberOfPagesInDocument? – braX

+1

L'espace de noms 'Microsoft.Office.Interop' reflète l'API fournie par Office VBA (aussi proche que possible), donc tout ce qui est possible dans VBA peut également être fait dans .NET en utilisant l'espace de noms' Microsoft.Office.Interop'. Où êtes-vous coincé/avez-vous des problèmes? Obtient-il le 'ActiveDocument'? Dans ce cas: Vous pouvez obtenir le 'ActiveDocument' de la classe [' Word.Application'] (https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._application.activedocument. aspx). – bassfader

+0

@bassfader J'ai essayé, mais je n'arrive pas à le faire fonctionner. Je posterai une partie de mon code. – Jaberwocky

Répondre

-2

Lorsque vous code dans VBA, l'espace de noms de l'application parent (Word, Excel, etc.) est évident, donc des constantes telles que wdNumberOfPagesInDocument ont des définitions. Avec Microsoft.Office.Interop.Word vous devez fournir les informations d'espace de noms; par exemple:

... 
With objDoc 
    pages = .Range.Information(Word.WdInforma‌​tion.wdNumberOfPagesInDocument) 
End With 
.... 
+0

Je ne sais pas ce que vous essayez de faire avec ce post, mais il a été répondu dans les commentaires ci-dessus. 'pages = .Application.ActiveDocument.Range.Information (Word.WdInforma tion.wdNumberOfPages InDocument)' – Jaberwocky

1

Une façon est d'obtenir dernier numéro de page:

lastPageNumber = objDoc.Words.Last.Information[Wd.WdInformation.wdActiveEndPageNumber]