Francesco Geri

Il blog di Francesco Geri
posts - 54, comments - 50, trackbacks - 37

My Links

News



Anch'io metto nel mio blog cose che scrivo così, tanto per fare, tanto per condividere miei appunti, senza prendermi la briga di garantirne l'infallibilità, né l'assoluta correttezza, senza pretese e con grande umilté.

Quanti mi hanno visto dal 25/10/2007:
...dettagli

Che libro leggo in questo periodo?*

L'Affittacamere - Valerio Varesi
* L'immagine è presa da IBS (http://www.ibs.it), spero non me ne vogliano...

Archives

Post Categories

Altre

Blogs

Documenti Word: Update del valore di custom properties inserite in Header e Footer

Definendo in un documento Word delle custom properties è poi possibile inserirne i valori nel contenuto del documento.

Il seguente codice può essere utilizzato per aggiornare in automatico le custom properties ed il contenuto del documento:

 

   1:           ' Avvia l'applicazione Word
   2:           Dim oWORD As New Word.Application
   3:           ' Recupera il documento
   4:           Dim oDOC As Word.Document = oWORD.Documents.Open("c:\temp\MyWordDocument.doc")
   5:           ' Aggiorna le custom properties
   6:           For iProp As Integer = 1 To oDOC.CustomDocumentProperties.Count
   7:              If oDOC.CustomDocumentProperties(iProp).Name = "MyProperty" Then
   8:                 oDOC.CustomDocumentProperties(iProp).Value = "MyValue"
   9:                 Exit For
  10:              End If
  11:           Next
  12:           ' Aggiorna il contenuto del documento
  13:           oDOC.Fields.Update()
  14:           ' Chiude salvando il documento
  15:           oDOC.ActiveWindow.Document.Close(True)
  16:           ' Chiude l'applicazione Word
  17:           oWORD.Quit(False)

 

Così facendo, però, viene aggiornato solo il contenuto del documento, ma non header e footer. Per cui se la custom property la si usa nell'header o nel footer il suo valore non viene aggiornato.

In questo caso il codice potrebbe essere il seguente: 

 

   1:           ' Avvia l'applicazione Word
   2:           Dim oWORD As New Word.Application
   3:           ' Recupera il documento
   4:           Dim oDOC As Word.Document = oWORD.Documents.Open("c:\temp\MyWordDocument.doc")
   5:           ' Aggiorna le custom properties
   6:           For iProp As Integer = 1 To oDOC.CustomDocumentProperties.Count
   7:              If oDOC.CustomDocumentProperties(iProp).Name = "MyProperty" Then
   8:                 oDOC.CustomDocumentProperties(iProp).Value = "MyValue"
   9:                 Exit For
  10:              End If
  11:           Next
  12:           ' Aggiorna il contenuto del documento
  13:           oDOC.Fields.Update()
  14:           ' Aggiorna header e footer
  15:           oDOC.ActiveWindow.View.Type = Word.WdViewType.wdPrintView
  16:           oDOC.ActiveWindow.View.SeekView = Word.WdSeekView.wdSeekCurrentPageHeader
  17:           oDOC.ActiveWindow.Selection.WholeStory()
  18:           oDOC.ActiveWindow.Selection.Fields.Update()
  19:           oDOC.ActiveWindow.View.SeekView = Word.WdSeekView.wdSeekCurrentPageFooter
  20:           oDOC.ActiveWindow.Selection.WholeStory()
  21:           oDOC.ActiveWindow.Selection.Fields.Update()
  22:           ' Chiude salvando il documento
  23:           oDOC.ActiveWindow.Document.Close(True)
  24:           ' Chiude l'applicazione Word
  25:           oWORD.Quit(False)

Print | posted on lunedì 17 dicembre 2007 3.30 | Filed Under [ Tips .Net MS Office ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 6 and 8 and type the answer here:

Powered by: