Word docm opent alleen in read only

Status
Niet open voor verdere reacties.

rudyV

Gebruiker
Lid geworden
25 feb 2019
Berichten
34
Geacht forum,

Met een macro in Access probeer ik een word document te openen.
Dat ging de eerste paar keren prima, echter out of the blue krijg ik melding dat het word.docm alleen readonly kan worden bekeken.
Na enig gefröbel veranderde dit in een error 5180 'het sjabloon kan niet worden geopend'.
Code:
    Dim objWord
    Dim objDoc
    Dim objRange

    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Open(sOpen)  'al dan niet met , Options.ConfirmConversions = False, ActiveDocument.ReadOnly = False)

Kent u een workaround via vba en de bovenstaande code?

Aanvulling 6-11
Na extensief zoeken kwam ik op de volgende coderegels
Code:
Dim secAutomation As MsoAutomationSecurity
 
    secAutomation = Application.AutomationSecurity
 
    objDoc.Application.AutomationSecurity = msoAutomationSecurityForceDisable

Naar ik begrijp wordt hiermee autoOpen macro (e.d.) in Word uitgeschakeld.
Vreemd genoeg krijg ik hierbij de melding:
Code:
Een door de gebruiker gedefinieerd gegevenstype is niet gedefinieerd
Hetgeen refereert aan de msoAutoMationSecurity.

Inmiddels ben ik erachter dat hiervoor de verwijzing: MS office 16.0 object library nodig is.
En die verwijzing komt niet voor in de verwijzingen in het VBA-venster. (zucht)
Graag uw hulp.
 
Laatst bewerkt:
Hoezo niet? Je kunt de bibliotheek toch aanzetten in <Extra>, <Verwijzingen>? Ook kun je de hele procedure draaien met Late Binding, als je de juiste getallen weet voor de parameters. Maar de bibliotheek activeren is uiteraard het makkelijkst.
 
Juist die bibliotheek mist, helaas. Als relatieve newbie heb ik veel aan early binding en de intellisense.
Inmiddels heb ik de word opstart omgezet naar late binding, maar zou niet weten hoe ik dat moet doen met de macro's (msoAutomationForceDisable) "uitzetten".
Kun jij helpen?
 
Hoezo mist de bibliotheek? Als je Word op je pc hebt (en die is onlosmakelijk verbonden met je Office suite) móet je ook de Word bibliotheek hebben.
 
Het is er eenvoudig niet.
En geloof maar gerust dat ik gezocht heb :confused:
Volgens dr Google schijnt het ook wel vaker voor de komen.
Allerlei patches worden voorgesteld: van office opnieuw installeren tot de hond eerder uitlaten.
Waar het op neer komt is, dat de library er nog steeds niet is. Ook geen eerdere versie.
Vandaar de vraag om late binding.
 
Dit is wat ik tot nog toe heb;
Code:
    Dim objWord As Object
    Dim objDoc As Object
  
    If Err.Number <> 0 Then
        Set objWord = GetObject("Word.Application")
    Else 'Word is is al opgestart
    End If

    Set objWord = CreateObject("Word.Application")

    objWord.automationsecurity = 3

    Set objWord = objWord.Documents.Open(sOpen)
Echter, de melding omtrent het readonly openen blijft.
Ben ik al een beetje in de goede richting?
 
Ik blijf met enig ongeloof achter; nog maar wat vragen dus. 1) heb je Word wel op de computer staan? 2) Werkt Word normaal? 3) Kun je macro's opnemen en bewerken? 4) Heb je dan wél de beschikking over de bibliotheek?
 
Verder zoekende is de bibliotheek MS Office 16.0 object library wel zichtbaar in Word.
Word wordt echter aangesproken door Access en daarin is het (echt) niet aanwezig.

Begrijp ik iets verkeerd?
 
Ik denk dat je iets verkeerd begrijpt. In elk Office pakket kun je meerdere bibliotheken activeren en gebruiken. Dat is stap 1 en dat heb ik dus gevraagd in #2. Ofwel de bibliotheek is er niet (en dan deugt de office installatie niet), en dan werkt Word ook niet goed, ofwel hij is er wel en dan kun je hem overal aanroepen. Ik heb er een paar aangezet in mijn Access versie. Ik gebruik er overigens nog wel een paar meer :).

Bibliotheken.jpg
 
En hou het vooral simpel

Code:
Sub M_snb()
  with createobject("Word.Application").documents.add("G:\OF\voorbeeld.docm")
     msgbox .Paragraphs.count
  end with
End Sub

'het sjabloon kan niet worden geopend'.
Je hebt het over een .docm bestand. Dat is geen sjabloon.
De eenvoudigste manier om een Word-bestand te openen is met Getobject("G:\OF\voorbeeld.docx") of Getobject("G:\OF\voorbeeld.docm")
 
Laatst bewerkt:
Dank beiden, AccessGuru en snb,

Een nieuwe installatie schijnt het probleem te hebben opgelost.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan