Procedura: utilizzare le finestre di dialogo di Word in modalità nascosta a livello di codice
È possibile eseguire operazioni complesse con una sola chiamata al metodo richiamando le finestre di dialogo incorporate di Microsoft Office Word senza visualizzarle all'utente.A tale scopo, utilizzare il metodo Execute dell'oggetto Dialog senza chiamare il metodo Display.
Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Word 2013 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.
Esempi
Negli esempi di codice seguenti viene dimostrato come utilizzare la finestra di dialogo Imposta pagina in modalità nascosta per configurare più proprietà di impostazione pagina senza input dell'utente.Negli esempi viene utilizzato un oggetto Dialog per configurare dimensioni di pagina personalizzate.Le impostazioni specifiche per l'impostazione di pagina, come il margine superiore, il margine inferiore e così via, sono disponibili come proprietà ad associazione tardiva dell'oggetto Dialog.Queste proprietà vengono create in modo dinamico da Word in fase di esecuzione.
Nell'esempio seguente viene dimostrato come eseguire questa attività nei progetti di Visual Basic in cui Option Strict non è attiva e nei progetti di Visual C# che hanno come destinazione .NET Framework 4.In questi progetti, è possibile utilizzare funzionalità di associazione tardiva nei compilatori di Visual Basic e Visual C#.Per utilizzare questo esempio di codice, eseguirlo dalla classe ThisDocument o ThisAddIn del progetto.
Dim dialog As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFilePageSetup)
' Set the properties of the dialog box.
' ControlChars.Quote() is used to represent the symbol for inches.
With dialog
.PageWidth = 3.3 & ControlChars.Quote
.PageHeight = 6 & ControlChars.Quote
.TopMargin = 0.71 & ControlChars.Quote
.BottomMargin = 0.81 & ControlChars.Quote
.LeftMargin = 0.66 & ControlChars.Quote
.RightMargin = 0.66 & ControlChars.Quote
.HeaderDistance = 0.28 & ControlChars.Quote
.Orientation = Word.WdOrientation.wdOrientPortrait
.DifferentFirstPage = False
.FirstPage = 0
.OtherPages = 0
' Apply these settings only to the current selection with this line of code:
.ApplyPropsTo = 3
' Apply the settings.
.Execute()
End With
dynamic dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFilePageSetup];
dialog.PageWidth = "3.3\"";
dialog.PageHeight = "6\"";
dialog.TopMargin = "0.71\"";
dialog.BottomMargin = "0.81\"";
dialog.LeftMargin = "0.66\"";
dialog.RightMargin = "0.66\"";
dialog.HeaderDistance = "0.28\"";
dialog.Orientation = "0";
dialog.DifferentFirstPage = "0";
dialog.FirstPage = "0";
dialog.OtherPages = "0";
// Apply these settings only to the current selection with this line of code:
dialog.ApplyPropsTo = "3";
// Apply the settings.
dialog.Execute();
L'esempio seguente illustra come eseguire questa attività nei progetti di Visual Basic. Option Strict dove è attiva.In questi progetti, è necessario utilizzare la reflection per accedere alle proprietà ad associazione tardiva.Per utilizzare questo esempio di codice, eseguirlo dalla classe ThisDocument o ThisAddIn del progetto.
Friend Sub PageSetupDialogHidden()
Dim dialog As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFilePageSetup)
' Set the properties of the dialog box.
' ControlChars.Quote() is used to represent the symbol for inches.
InvokeHelper(dialog, "PageWidth", "3.3" & ControlChars.Quote)
InvokeHelper(dialog, "PageHeight", "6" & ControlChars.Quote)
InvokeHelper(dialog, "TopMargin", "0.71" & ControlChars.Quote)
InvokeHelper(dialog, "BottomMargin", "0.81" & ControlChars.Quote)
InvokeHelper(dialog, "LeftMargin", "0.66" & ControlChars.Quote)
InvokeHelper(dialog, "RightMargin", "0.66" & ControlChars.Quote)
InvokeHelper(dialog, "HeaderDistance", "0.28" & ControlChars.Quote)
InvokeHelper(dialog, "Orientation", "0")
InvokeHelper(dialog, "DifferentFirstPage", "0")
InvokeHelper(dialog, "FirstPage", "0")
InvokeHelper(dialog, "OtherPages", "0")
' Apply these settings only to the current selection with this line of code:
InvokeHelper(dialog, "ApplyPropsTo", "3")
' Apply the settings.
dialog.Execute()
End Sub
Private Shared Sub InvokeHelper(ByVal dialog As Word.Dialog, ByVal member As String, ByVal value As String)
Dim dialogType As System.Type = GetType(Word.Dialog)
' Set the appropriate property of the dialog box.
dialogType.InvokeMember(member,
System.Reflection.BindingFlags.SetProperty Or
System.Reflection.BindingFlags.Public Or
System.Reflection.BindingFlags.Instance,
Nothing, dialog, New Object() {value},
System.Globalization.CultureInfo.InvariantCulture)
End Sub
Vedere anche
Riferimenti
Reflection (C# e Visual Basic)
Concetti
Procedura: utilizzare finestre di dialogo incorporate in Word a livello di codice
Associazione tardiva nelle soluzioni Office