Sintomi
Quando si tenta di aprire un documento di Microsoft Word, il documento viene aperto come documento di sola lettura e non è possibile modificare il documento.
Quando si aggiunge il codice
ReadOnly:=False
il documento viene comunque aperto come documento di sola lettura.
Quando si apre lo stesso documento utilizzando il comando Apri , verrà visualizzato il seguente messaggio:
Percorso dovrebbe essere aperto in sola lettura a meno che non sia necessario salvare le modifiche ad esso. Aprire in sola lettura?
È possibile aprire il documento per modificarlo, fare clic su Sì nel messaggio.
Causa
Questo problema si verifica perché Visual Basic consente di aprire qualsiasi documento con l'attributo ReadOnlyRecommended impostata su true come documento di sola lettura, anche se si tenta di impostare l'attributo ReadOnly su false.
Nota: Nell'esempio seguente si applica a Word 2003 e 2002:
-
Avviare Word e quindi creare un nuovo documento.
-
Scegliere Opzioni dal menu Strumenti.
-
Nella finestra di dialogo Opzioni , nella scheda protezione , fare clic per selezionare la casella di controllo Consigliata sola lettura .
-
Salvare il documento come C:\Test.doc.
-
Chiudere il documento.
-
Premere ALT + F11 per avviare l'editor di Visual Basic.
-
Scegliere modulodal menu Inserisci .
-
Nel modulo, digitare il seguente codice:
Sub Test()
Documents.Open FileName:="C:\Test.doc", ReadOnly:=False
End Sub -
Premere ALT + F11 per tornare a Word.
-
Scegliere Macrodal menu Strumenti e quindi fare clic su macro.
-
Nell'elenco Nome Macro , fare clic su Teste quindi fare clic su Esegui.
Il documento viene aperto come documento di sola lettura.
Soluzione alternativa
Per risolvere questo problema, utilizzare la seguente macro di Word base anziché la macro di Visual Basic illustrata nel passaggio 8 della sezione "Cause" di questo articolo:
Sub Test()
WordBasic.FileOpen Name:="C:\Test.doc"
End Sub
Con questa macro, il file può essere modificato dopo l'apertura.
Stato
Microsoft ha confermato che si tratta di un problema nei prodotti Microsoft elencati all'inizio di questo articolo.