Word Template Reference Informatie

Status
Niet open voor verdere reacties.

Tilly1987

Gebruiker
Lid geworden
23 aug 2011
Berichten
20
Geachte HelpMij Forumleden,

Ik ben zojuist overgegaan van Office 2003 naar Office 2010. Enkele bestanden dienen aangepast te worden waaronder bestanden met VBA componenten. Nu ben ik bij het controleren op (in mijn ogen) inconstante Template verwijzing gedrag gestuit. Dit heb ik met onderstaande code gesimuleerd (Extra informatie in code toegevoegd):


Code:
Sub CreateDocOfTemplate()
Dim myDocTempNormal As Document
Dim myDocTemp2003 As Document
Dim myDocTemp2010 As Document
Dim myDocTemp2010m As Document
Dim myDocTemp2003All As Document
Dim myDocTemp2010mAll As Document

'This procedure presumes a Map is available on c:\Test
'In this map there should be vijf templates available:
'Dit is een test template.dot   'Document dot, .dot template containing 1 module with one msg Sub
'Dit is een test template.dotx  'Document dotx, .dotx template
'Dit is een test template.dotm  'Document dotm, .dotm template containing 1 module with one msg Sub
'TestTemplateUF.dot             'Document dot, .dot template containing 1 module, 1 Userform and 1 Class Module
'TestTemplateUF.dotm            'Document dotm, .dotm template containing 1 module, 1 Userform and 1 Class Module


    'Test Create Normal Document, Reference automatically set to Normal
    Set myDocTempNormal = Application.Documents.Add
    
    'Test Create Document 97- 2003, Reference set to .dot template containing 1 module with one msg Sub
    Set myDocTemp2003 = Application.Documents.Add("C:\Test\Dit is een test template.dot")
    
    'Test Create Document docx, Reference set to .dotx template
    Set myDocTemp2010 = Application.Documents.Add("C:\Test\Dit is een test template.dotx")
    
    'Test Create Document docm, Reference set to .dotm template containing 1 module with one msg Sub
    Set myDocTemp2010m = Application.Documents.Add("C:\Test\Dit is een test template.dotm")
    
    'Test Create Document 97- 2003, Reference set to .dot template containing 1 module, 1 Userform and 1 Class Module
    Set myDocTemp2003All = Application.Documents.Add("C:\Test\TestTemplateUF.dot")
    
    'Test Create Document docm, Reference set to .dotm template containing 1 module, 1 Userform and 1 Class Module
    Set myDocTemp2010mAll = Application.Documents.Add("C:\Test\TestTemplateUF.dotm")
    
    
    'Save Created Documents
    myDocTempNormal.SaveAs2 "C:\Test\Normal.doc", wdFormatDocument97
    myDocTemp2003.SaveAs2 "C:\Test\Temp2003.doc", wdFormatDocument97
    myDocTemp2010.SaveAs2 "C:\Test\Temp2010.docx", wdFormatDocumentDefault
    myDocTemp2010m.SaveAs2 "C:\Test\Temp2010m.docm", wdFormatXMLDocumentMacroEnabled
    myDocTemp2003All.SaveAs2 "C:\Test\Temp2003All.doc", wdFormatDocument97
    myDocTemp2010mAll.SaveAs2 "C:\Test\Temp2010mAll.docm", wdFormatXMLDocumentMacroEnabled

'After running This Look at the Project Explorer. All created files have proper references to the based templates.
'Special note Temp2003.doc and Temp2010m.docm

'Now close all Word instances and reopen (one at a time) Temp2003.doc, Temp2010m.docm, Temp2003All.doc, Temp2010mAll.docm

'Look at the project Explorer and see that unusual behaviour is encountered.
'For Temp2003.doc and Temp2010m.doc I see no longer a Reference for the template (Template project is loaded twice. _
In one instance ThisDocument, Module1 and a Reference is loaded _
In the other instance only ThisDocument is loaded.

'For Temp2003All.doc and Temp2010mAll.docm I see the Reference to the template listed in the project explorer as I presumed it would.

'What is the cause of the difference in behaviour??

End Sub

In een poging om het te verduidelijken voeg ik eveneens onderstaande figuren toe aan de vraagstelling. Bij eerste aanmaak zie ik verwijzingen in de Project Explorer (Figuur1). Als alle Word instancies gesloten worden en de bestanden één voor een geopend worden zie ik mijn vermelde probleem stelling. Zie bijvoorbeeld dat er voor Temp2003.doc & Temp2010m.docm geen verwijzing deel vermeld staat in de Project Explorer, maar dat de bijbehorende template wel (2x) geopend is (Figuur 2 & 4). Dit zie ik echter niet weer terug bij Temp2003All.doc & Temp2010mAll.docm (Figuur 6 & 7).

Als ik het bestand Temp2003.doc bekijk in Word 2003 dan zijn de verwijzingen wel juist weergegeven in de Project Explorer. Is er bij Word 2010 een aanpassing doorgevoerd betreffende de verwerking van Template Verwijzingen?

Wat is hier precies het verschil? Waarom verwijst hij bij aanmaak in Word 2010 wel naar de template in de Project Explorer, maar bij het openen van het bestand weer niet?
Ik kan mijn vinger er niet goed achter krijgen, kan iemand mij wellicht uitleg geven?


Met vriendelijke groet,

Tilly

Opmerking)
Ik heb de afbeeldingen gemaakt voordat ik extra informatie in de code heb aangebracht. Zie code vlak in de post voor informatie/beschrijving

ScreenShot001.jpgScreenShot002.jpgScreenShot003.jpgScreenShot004.jpgScreenShot005.jpgScreenShot006.jpgScreenShot007.jpg
 
Wellicht handiger om de betreffende sjablonen erbij te doen; dat test een stuk makkelijker.
 
Templates

Bedankt voor de snelle reactie OctaFish (Michel).

Als het goed is zit in onderstaande link alle template bestanden in een zip toegevoegd. Standaard accepteert helpmij volgens mij geen .dotm bestanden.

Bekijk bijlage Templates.zip
 
Ik heb de macro voor het gemak opgesplitst in separate macro's om het gedrag beter te kunnen bestuderen. En ik zie niks geks, vrees ik. Ik heb plaatjes gemaakt van de twee die volgens jou niet klopten, maar ik zie daar dus niks geks aan.
 

Bijlagen

  • Temp2003.png
    Temp2003.png
    64,3 KB · Weergaven: 54
  • Temp2010m.png
    Temp2010m.png
    61 KB · Weergaven: 43
Als ik dezelfde code zou draaien zie ik bij aanmaak ook de verwijzing wel juist staan (zie Figuur 1 van mijn oorspronkelijke post). Zie je de verwijzing echter ook juist als je eerst alle Word instancies afsluit (Dus ook degene die je gebruikt om de documenten aan te maken). Vervolgens als alle Word instanties afgesloten zijn, zou je eens willen kijken of de verwijzing van Temp2003.doc & Temp2010m.docm er dan uitzien zoals figuur 2 & 4? Ik heb het hier namelijk op verschillende configuraties getest en zie hetzelfde telkens terug komen :shocked: dus had in mijn hoofd al uitgesloten dat het aan mijn installatie zou kunnen liggen :(.
 
Ik snap niet helemaal wat je bedoelt. Als ik jouw oorspronkelijke code uitvoer, dan maakt hij eerst 6 nieuwe documenten aan, met bijbehorende template koppelingen, en dat maakt de modules nogal onoverzichtelijk. Het is dan moeilijk te zien welke module/template bij welk document hoort. Mijn werkwijze: ik heb de 6 macro's in de Normal.dotm van 2010 gezet. Dus in een nieuwe module van Word 2010. En van daaruit de macro's gedraaid. En dan ziet alles er behoorlijk logisch uit.
 
Ok laat ik één aanmaak van de Documenten eruit lichten en deze toelichten. Ik werk met de volgende aanmaak:

Code:
Sub CreateDocOfTemplate()
Dim myDocTemp2003 As Document

'This procedure presumes a Map is available on c:\Test
'In this map there should be vijf templates available:
'Dit is een test template.dot   'Document dot, .dot template containing 1 module with one msg Sub

    'Test Create Document 97- 2003, Reference set to .dot template containing 1 module with one msg Sub
    Set myDocTemp2003 = Application.Documents.Add("C:\Test\Dit is een test template.dot")                     'In jouw'n uitwerkingen constante Pad = "H:Temp\Word\Templates\"
    
    'Save Created Documents
    myDocTemp2003.SaveAs2 "C:\Test\Temp2003.doc", wdFormatDocument97                                          'In jouw'n uitwerkingen "H:Temp\Word\Templates\Temp2003.doc"

End Sub

Als ik de code draai vanuit een Document waarin de VBA code CreateDocOfTemplate zich bevindt (in jouw'n geval CreateDocOfTemplate2), dan krijg ik in de Project Explorer inderdaad de structuur zoals die in jouw screenschot (Figuur 1). Dus dat ziet er texttueel zo uit bij mij:

Normal
Project (Temp2003.doc)
Microsoft Word -objecten​
-> ThisDocument​
Verwijzingen​
-> Verwijzing naar Dit is een test template.dot​
TemplateProject (Dit is een test template)
Microsoft Word -objecten​
-> ThisDocument​
Modules​
-> MsgPublic​


Nu komt echter het probleem. Als alle instaties van Word afgesloten worden en "C:\Test\Temp2003.doc" (bij jou "H:Temp\Word\Templates\Temp2003.doc") wordt opnieuw geopend, dan veranderd bij mij de Project Explorer naar de volgende structuur (Figuur 2):

Normal
Project (Temp2003.doc)
Microsoft Word -objecten​
-> ThisDocument​
TemplateProject (Dit is een test template)
Microsoft Word -objecten​
-> ThisDocument​
Modules​
-> MsgPublic​
TemplateProject (Dit is een test template)
Microsoft Word -objecten​
-> ThisDocument​

Waarom is de structuur anders bij het heropenen van het bestand? Hopelijk heb ik het zo iets duidelijker uitgelegd :o. Trouwens alvast hartstikke bedankt voor de genomen moeite zover, waardeer ik erg :d

ScreenShot001.jpgScreenShot002.jpg
 
De uitleg is helder, het kwartje is eindelijk gevallen ;). Jammer genoeg is het probleem niet te reproduceren, want ik zie precies wat ik hoor te zien. Eén exemplaar van de sjabloon. Dus ik hoop voor je dat iemand anders het probleem wèl kan reproduceren.
 
Maar dan nog: wat is nu het probleem ?

Is het niet verstandiger voortaan alleen nog maar uit te gaan van docx en docm bestanden ?
 
Het probleem is dat een Document altijd maar een referentie naar een template dient te bevatten. (Standaard is dat Normal.dot, maar indien gewenst een ander toegewezen template)
In mijn geval heb ik dat dus niet altijd, zowel voor 97-2003 (*.doc) als de Nieuwe Office formaat (.docm) bestanden. Dit fenomeen is nieuw voor mij en tegenstrijdig met alle beschikbare documentatie, daarom de vraag of dit wellicht nieuw is in Word 2010.

Met behulp van Octafish kunnen we echter constateren dat er wellicht iets mis is met de instellingen / installatie van mijn Word 2010. Gezien hij dit probleem niet heeft met zijn installatie. Ben nu echter wel even abuis hoe ik het ga oplossen gezien ik drie verschillende systemen heb getest. Onder deze drie zat een verse installatie van zowel Windows 7 als Office 2010 met alle updates. In ieder geval bedankt voor alle hulp zover ;):thumb:. Ga nogmaals controleren of ik niet iets over het hoofd heb gekeken.
 
Belangrijker lijkt me of via het sjabloon gebruik gemaakt kan worden van de opmaak, documentvaraibelen, tekstelementen etc. in dat sjabloon.
Overigens kun je met VBA ook een gewoon Word document (docx, docm) als sjabloon gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan