Suggerimento di sistemaIl presente articolo fa riferimento a un sistema operativo diverso da quello in uso. Il contenuto dell'articolo che potrebbe non essere relativo al sistema in uso è disabilitato.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I303296
In questo articolo viene dimostrato come creare un client di automazione in Visual C# .NET che modifica le proprietà di un documento di Word. Sebbene il codice di esempio si riferisca esplicitamente a Word, è possibile utilizzare le stesse tecniche per automatizzare Excel e PowerPoint.
Creare un client di automazione per Microsoft Word
Avviare Visual Studio .NET. Scegliere
Nuovo
dal menu
File, quindi scegliere
Progetto. Selezionare
Applicazione Windows
dai tipi di progetto Visual C#.
Form1
viene creato per impostazione predefinita.
Aggiungere un riferimento alla
Libreria oggetti di Microsoft Word. Per eseguire questa operazione, attenersi alla seguente procedura:
Scegliere
Aggiungi riferimento
dal menu
Progetto.
Nella scheda
COM
individuare
Microsoft Word Object Library
e scegliere
Seleziona.
NOTA: la Libreria oggetti di Microsoft Word contiene un numero di versione. Il numero di versione per Word 2000 è 9.0, mentre quello per Word 2002 è 10.0.
Scegliere
OK
nella finestra di dialogo
Aggiungi riferimento
per confermare le selezioni. Se viene richiesto di generare wrapper per le librerie selezionate, scegliere
Sì.
Scegliere
Casella degli strumenti
dal menu
Visualizza
per visualizzare la Casella degli strumenti e aggiungere un pulsante a Form1.
Fare doppio clic su
Button1. Verrà visualizzata la finestra del codice del form.
Nella finestra del codice sostituire il codice seguente
private void button1_Click(object sender, System.EventArgs e)
{
Word.Application oWord;
Word._Document oDoc;
object oMissing = Missing.Value;
object oDocBuiltInProps;
object oDocCustomProps;
//Create an instance of Microsoft Word and make it visible.
oWord = new Word.Application();
oWord.Visible = true;
//Create a new Document and get the BuiltInDocumentProperties collection.
oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing,
ref oMissing);
oDocBuiltInProps = oDoc.BuiltInDocumentProperties;
Type typeDocBuiltInProps = oDocBuiltInProps.GetType();
//Get the Author property and display it.
string strIndex = "Author";
string strValue;
object oDocAuthorProp = typeDocBuiltInProps.InvokeMember("Item",
BindingFlags.Default |
BindingFlags.GetProperty,
null,oDocBuiltInProps,
new object[] {strIndex} );
Type typeDocAuthorProp = oDocAuthorProp.GetType();
strValue = typeDocAuthorProp.InvokeMember("Value",
BindingFlags.Default |
BindingFlags.GetProperty,
null,oDocAuthorProp,
new object[] {} ).ToString();
MessageBox.Show( "The Author is: " + strValue,"Author" );
//Set the Subject property.
strIndex = "Subject";
strValue = "The Subject";
typeDocAuthorProp.InvokeMember("Item",
BindingFlags.Default |
BindingFlags.SetProperty,
null,oDocBuiltInProps,
new object[] {strIndex,strValue} );
//Add a property/value pair to the CustomDocumentProperties collection.
oDocCustomProps = oDoc.CustomDocumentProperties;
Type typeDocCustomProps = oDocCustomProps.GetType();
strIndex = "Knowledge Base Article";
strValue = "Q303296";
object[] oArgs = {strIndex,false,
MsoDocProperties.msoPropertyTypeString,
strValue};
typeDocCustomProps.InvokeMember("Add",BindingFlags.Default |
BindingFlags.InvokeMethod, null,
oDocCustomProps, oArgs );
MessageBox.Show("Select \"Properties\" from the File menu "
+ "to view the changes.\nSelect the Summary tab to view "
+ "the Subject property and the Custom tab to view the Knowledge"
+ "Base Article property.", "Check File Properties",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
con:
Scorrere verso l'alto la pagina del codice e aggiungere le righe seguenti alla fine dell'elenco delle direttive
using.
Per Word 2000:
using System.Reflection;
using Office; //Office 2000
Per Word 2002:
using System.Reflection;
using Microsoft.Office.Core; //Office XP
con:
Premere F5 per eseguire l'applicazione.
NOTA: le interfacce
DocumentProperties
e
DocumentProperty
sono interfacce ad associazione tardiva. Per utilizzarle, è necessario trattarle al pari di un'interfaccia
IDispatch.
Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito (gli articoli con prefisso "Q" contengono informazioni in inglese):
303294
(http://support.microsoft.com/kb/303294/
)
How to Use Automation to Get and Set Office Document Properties with Visual Basic .NET
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Queste informazioni sono state utili?
Sì
No
In parte
Quanto impegno ti ha richiesto il corretto utilizzo di questo articolo?
Molto basso
Basso
Medio
Elevato
Molto elevato
Inviare commenti e suggerimenti
Grazie. I commenti e suggerimenti forniti verranno utilizzati per migliorare la qualità dei contenuti di supporto tecnico. Per ulteriori opzioni di assistenza, visitare la home page del Supporto Tecnico Microsoft.