Share via


Benoemde en optionele argumenten gebruiken in Office-programmering

Benoemde argumenten en optionele argumenten verbeteren gemak, flexibiliteit en leesbaarheid in C#-programmering. Bovendien vergemakkelijken deze functies de toegang tot COM-interfaces zoals de Automatiserings-API's van Microsoft Office aanzienlijk.

Belangrijk

VSTO (Visual Studio Tools for Office) is afhankelijk van .NET Framework. COM-invoegtoepassingen kunnen ook worden geschreven met .NET Framework. Office-invoegtoepassingen kunnen niet worden gemaakt met .NET Core en .NET 5+, de nieuwste versies van .NET. Dit komt doordat .NET Core/.NET 5+ niet kan samenwerken met .NET Framework in hetzelfde proces en kan leiden tot invoegtoepassingsfouten. U kunt .NET Framework blijven gebruiken om VSTO- en COM-invoegtoepassingen voor Office te schrijven. Microsoft werkt VSTO of het COM-invoegtoepassingsplatform niet bij om .NET Core of .NET 5+ te gebruiken. U kunt gebruikmaken van .NET Core en .NET 5+, inclusief ASP.NET Core, om de serverzijde van Office Web-invoegtoepassingen te maken.

In het volgende voorbeeld heeft de methode ConvertToTable 16 parameters die kenmerken van een tabel vertegenwoordigen, zoals het aantal kolommen en rijen, opmaak, randen, lettertypen en kleuren. Alle 16 parameters zijn optioneel, omdat u meestal geen specifieke waarden wilt opgeven voor alle parameters. Zonder benoemde en optionele argumenten moet u echter een waarde of een tijdelijke aanduiding opgeven. Met benoemde en optionele argumenten geeft u alleen waarden op voor de parameters die vereist zijn voor uw project.

U moet Microsoft Office Word op uw computer hebben geïnstalleerd om deze procedures te kunnen voltooien.

Notitie

Mogelijk worden op uw computer verschillende namen of locaties weergegeven voor sommige elementen van de Visual Studio-gebruikersinterface in de volgende instructies. De Visual Studio-editie die u hebt en de instellingen die u gebruikt, bepalen deze elementen. Zie Personalizing the IDE (Personalizing the IDE) voor meer informatie.

Een nieuwe consoletoepassing maken

Start Visual Studio. Wijs in het menu Bestand de optie Nieuw aan en selecteer Vervolgens Project. Vouw in het deelvenster Sjablonencategorieën C# uit en selecteer Vervolgens Windows. Kijk boven in het deelvenster Sjablonen om ervoor te zorgen dat .NET Framework 4 wordt weergegeven in het vak Target Framework. Selecteer Consoletoepassing in het deelvenster Sjablonen. Typ een naam voor uw project in het veld Naam . Selecteer OK. Het nieuwe project wordt weergegeven in Solution Explorer.

Een verwijzing toevoegen

Klik in Solution Explorer met de rechtermuisknop op de naam van uw project en selecteer Vervolgens Verwijzing toevoegen. Het dialoogvenster Verwijzing toevoegen wordt weergegeven. Selecteer Op de pagina .NET Microsoft.Office.Interop.Word in de lijst Met onderdeelnamen. Selecteer OK.

Voeg de benodigde gebruiksrichtlijnen toe

Klik in Solution Explorer met de rechtermuisknop op het Program.cs-bestand en selecteer Code weergeven. Voeg de volgende using instructies toe aan het begin van het codebestand:

using Word = Microsoft.Office.Interop.Word;

Tekst weergeven in een Word-document

Voeg in de Program klasse in Program.cs de volgende methode toe om een Word-toepassing en een Word-document te maken. De methode Toevoegen heeft vier optionele parameters. In dit voorbeeld worden de standaardwaarden gebruikt. Daarom zijn er geen argumenten nodig in de aanroepinstructie.

static void DisplayInWord()
{
    var wordApp = new Word.Application();
    wordApp.Visible = true;
    // docs is a collection of all the Document objects currently
    // open in Word.
    Word.Documents docs = wordApp.Documents;

    // Add a document to the collection and name it doc.
    Word.Document doc = docs.Add();
}

Voeg de volgende code toe aan het einde van de methode om te definiëren waar tekst in het document moet worden weergegeven en welke tekst moet worden weergegeven:

// Define a range, a contiguous area in the document, by specifying
// a starting and ending character position. Currently, the document
// is empty.
Word.Range range = doc.Range(0, 0);

// Use the InsertAfter method to insert a string at the end of the
// current range.
range.InsertAfter("Testing, testing, testing. . .");

De toepassing uitvoeren

Voeg de volgende instructie toe aan Main:

DisplayInWord();

Druk op Ctrl+F5 om het project uit te voeren. Er wordt een Word-document weergegeven dat de opgegeven tekst bevat.

De tekst wijzigen in een tabel

Gebruik de ConvertToTable methode om de tekst in een tabel te plaatsen. De methode heeft 16 optionele parameters. IntelliSense plaatst optionele parameters tussen vierkante haken, zoals wordt weergegeven in de volgende afbeelding. De standaardwaarden zijn Type.Missing de eenvoudige naam voor System.Type.Missing.

Lijst met parameters voor de methode ConvertToTable

Met benoemde en optionele argumenten kunt u alleen waarden opgeven voor de parameters die u wilt wijzigen. Voeg de volgende code toe aan het einde van de methode DisplayInWord om een tabel te maken. Het argument geeft aan dat de komma's in de teksttekenreeks de range cellen van de tabel scheiden.

// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");

Druk op Ctrl+F5 om het project uit te voeren.

Experimenteren met andere parameters

Wijzig de tabel zodat deze één kolom en drie rijen bevat, vervang de laatste regel door de volgende instructie DisplayInWord en typ vervolgens Ctrl+F5.

range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);

Geef een vooraf gedefinieerde notatie op voor de tabel, vervang de laatste regel door DisplayInWord de volgende instructie en typ vervolgens Ctrl+F5. De indeling kan een van de WdTableFormat-constanten zijn.

range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
    Format: Word.WdTableFormat.wdTableFormatElegant);

Opmerking

De volgende code bevat het volledige voorbeeld:

using System;
using Word = Microsoft.Office.Interop.Word;

namespace OfficeHowTo
{
    class WordProgram
    {
        static void Main(string[] args)
        {
            DisplayInWord();
        }

        static void DisplayInWord()
        {
            var wordApp = new Word.Application();
            wordApp.Visible = true;
            // docs is a collection of all the Document objects currently
            // open in Word.
            Word.Documents docs = wordApp.Documents;

            // Add a document to the collection and name it doc.
            Word.Document doc = docs.Add();

            // Define a range, a contiguous area in the document, by specifying
            // a starting and ending character position. Currently, the document
            // is empty.
            Word.Range range = doc.Range(0, 0);

            // Use the InsertAfter method to insert a string at the end of the
            // current range.
            range.InsertAfter("Testing, testing, testing. . .");

            // You can comment out any or all of the following statements to
            // see the effect of each one in the Word document.

            // Next, use the ConvertToTable method to put the text into a table.
            // The method has 16 optional parameters. You only have to specify
            // values for those you want to change.

            // Convert to a simple table. The table will have a single row with
            // three columns.
            range.ConvertToTable(Separator: ",");

            // Change to a single column with three rows..
            range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);

            // Format the table.
            range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
                Format: Word.WdTableFormat.wdTableFormatElegant);
        }
    }
}