Partager via


Comment : remplir des tableaux Word avec des propriétés de document par programmation

L'exemple suivant crée un tableau Microsoft Office Word en haut du document et le remplit avec les propriétés du document hôte.

S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document et de niveau application pour Word 2013 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.

Remplissage des tableaux dans une personnalisation au niveau du document

Pour créer un tableau et le remplir avec des propriétés de document

  1. Définissez la plage en haut du document.

    Dim rng As Word.Range = Me.Range(Start:=0, End:=0)
    
    object start = 0, end = 0; 
    Word.Range rng = this.Range(ref start, ref end); 
    
  2. Insérez un titre pour le tableau et incluez les marques de paragraphe.

    With rng
        .InsertBefore("Document Statistics")
        .Font.Name = "Verdana"
        .Font.Size = 16
        .InsertParagraphAfter()
        .InsertParagraphAfter()
        .SetRange(rng.End, rng.End)
    End With
    
    rng.InsertBefore("Document Statistics"); 
    rng.Font.Name = "Verdana"; 
    rng.Font.Size = 16; 
    rng.InsertParagraphAfter(); 
    rng.InsertParagraphAfter(); 
    rng.SetRange(rng.End, rng.End); 
    
  3. Ajoutez le tableau au document au niveau de la plage.

    rng.Tables.Add(Range:=Me.Paragraphs.Item(2).Range, NumRows:=3, NumColumns:=2)
    
    rng.Tables.Add(this.Paragraphs[2].Range, 3, 2, ref missing, ref missing);
    
  4. Mettez le tableau en forme et appliquez un style.

    With Me.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Professional"
    End With
    
    Word.Table tbl = this.Tables[1];
    tbl.Range.Font.Size = 12; 
    tbl.Columns.DistributeWidth(); 
    
    object styleName = "Table Professional";
    tbl.set_Style(ref styleName); 
    
  5. Insérez les propriétés de document dans les cellules.

    With Me.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"
    
        .Cell(2, 1).Range.Text = "Subject"
        .Cell(2, 2).Range.Text = CType(Me.BuiltInDocumentProperties, Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()
    
        .Cell(3, 1).Range.Text = "Author"
        .Cell(3, 2).Range.Text = CType(Me.BuiltInDocumentProperties, Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()
    End With
    
    tbl.Cell(1, 1).Range.Text = "Document Property";
    tbl.Cell(1, 2).Range.Text = "Value";
    
    tbl.Cell(2, 1).Range.Text = "Subject";
    tbl.Cell(2, 2).Range.Text = ((Office.DocumentProperties)(this.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString();
    
    tbl.Cell(3, 1).Range.Text = "Author";
    tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(this.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString();
    

L'exemple suivant affiche la procédure complète.Pour utiliser ce code, exécutez-le dans votre projet à partir de la classe ThisDocument.

Private Sub CreateDocumentPropertyTable()
    Dim rng As Word.Range = Me.Range(Start:=0, End:=0)

    ' Insert a title for the table and paragraph marks.
    With rng
        .InsertBefore("Document Statistics")
        .Font.Name = "Verdana"
        .Font.Size = 16
        .InsertParagraphAfter()
        .InsertParagraphAfter()
        .SetRange(rng.End, rng.End)
    End With

    ' Add the table.
    rng.Tables.Add(Range:=Me.Paragraphs.Item(2).Range, NumRows:=3, NumColumns:=2)

    ' Format the table and apply a style.
    With Me.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Professional"
    End With

    ' Insert document properties into cells.
    With Me.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"

        .Cell(2, 1).Range.Text = "Subject"
        .Cell(2, 2).Range.Text = CType(Me.BuiltInDocumentProperties, Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()

        .Cell(3, 1).Range.Text = "Author"
        .Cell(3, 2).Range.Text = CType(Me.BuiltInDocumentProperties, Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()
    End With
End Sub
private void CreateDocumentPropertyTable() 
{ 
    object start = 0, end = 0; 
    Word.Range rng = this.Range(ref start, ref end); 

    // Insert a title for the table and paragraph marks. 
    rng.InsertBefore("Document Statistics"); 
    rng.Font.Name = "Verdana"; 
    rng.Font.Size = 16; 
    rng.InsertParagraphAfter(); 
    rng.InsertParagraphAfter(); 
    rng.SetRange(rng.End, rng.End); 

    // Add the table.
    rng.Tables.Add(this.Paragraphs[2].Range, 3, 2, ref missing, ref missing);

    // Format the table and apply a style. 
    Word.Table tbl = this.Tables[1];
    tbl.Range.Font.Size = 12; 
    tbl.Columns.DistributeWidth(); 

    object styleName = "Table Professional";
    tbl.set_Style(ref styleName); 

    // Insert document properties into cells. 
    tbl.Cell(1, 1).Range.Text = "Document Property";
    tbl.Cell(1, 2).Range.Text = "Value";

    tbl.Cell(2, 1).Range.Text = "Subject";
    tbl.Cell(2, 2).Range.Text = ((Office.DocumentProperties)(this.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString();

    tbl.Cell(3, 1).Range.Text = "Author";
    tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(this.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString();
}

Remplissage de tableaux dans un complément d'application

Pour créer un tableau et le remplir avec des propriétés de document

  1. Définissez la plage en haut du document.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range( _
        Start:=0, End:=0)
    
    object start = 0, end = 0;
    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Range(ref start, ref end);
    
  2. Insérez un titre pour le tableau et incluez les marques de paragraphe.

    With rng
        .InsertBefore("Document Statistics")
        .Font.Name = "Verdana"
        .Font.Size = 16
        .InsertParagraphAfter()
        .InsertParagraphAfter()
        .SetRange(rng.End, rng.End)
    End With
    
    rng.InsertBefore("Document Statistics");
    rng.Font.Name = "Verdana";
    rng.Font.Size = 16;
    rng.InsertParagraphAfter();
    rng.InsertParagraphAfter();
    rng.SetRange(rng.End, rng.End);
    
  3. Ajoutez le tableau au document au niveau de la plage.

    rng.Tables.Add(Range:=Me.Application.ActiveDocument.Paragraphs.Item(2).Range, _
        NumRows:=3, NumColumns:=2)
    
    rng.Tables.Add(document.Paragraphs[2].Range, 3, 2, ref missing, ref missing);
    
  4. Mettez le tableau en forme et appliquez un style.

    With Me.Application.ActiveDocument.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Professional"
    End With
    
    Word.Table tbl = document.Tables[1];
    tbl.Range.Font.Size = 12;
    tbl.Columns.DistributeWidth();
    
    object styleName = "Table Professional";
    tbl.set_Style(ref styleName);
    
  5. Insérez les propriétés de document dans les cellules.

    With Me.Application.ActiveDocument.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"
    
        .Cell(2, 1).Range.Text = "Subject"
        .Cell(2, 2).Range.Text = CType( _
            Me.Application.ActiveDocument.BuiltInDocumentProperties,  _
            Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()
    
        .Cell(3, 1).Range.Text = "Author"
        .Cell(3, 2).Range.Text = CType( _
            Me.Application.ActiveDocument.BuiltInDocumentProperties,  _
            Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()
    End With
    
    tbl.Cell(1, 1).Range.Text = "Document Property";
    tbl.Cell(1, 2).Range.Text = "Value";
    
    tbl.Cell(2, 1).Range.Text = "Subject";
    tbl.Cell(2, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString();
    
    tbl.Cell(3, 1).Range.Text = "Author";
    tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString();
    

L'exemple suivant affiche la procédure complète.Pour utiliser ce code, exécutez-le dans votre projet à partir de la classe ThisAddIn.

Private Sub CreateDocumentPropertyTable()
    Dim rng As Word.Range = Me.Application.ActiveDocument.Range( _
        Start:=0, End:=0)

    ' Insert a title for the table and paragraph marks.
    With rng
        .InsertBefore("Document Statistics")
        .Font.Name = "Verdana"
        .Font.Size = 16
        .InsertParagraphAfter()
        .InsertParagraphAfter()
        .SetRange(rng.End, rng.End)
    End With

    ' Add the table.
    rng.Tables.Add(Range:=Me.Application.ActiveDocument.Paragraphs.Item(2).Range, _
        NumRows:=3, NumColumns:=2)

    ' Format the table and apply a style.
    With Me.Application.ActiveDocument.Tables.Item(1)
        .Range.Font.Size = 12
        .Columns.DistributeWidth()
        .Style = "Table Professional"
    End With

    ' Insert document properties into cells.
    With Me.Application.ActiveDocument.Tables.Item(1)
        .Cell(1, 1).Range.Text = "Document Property"
        .Cell(1, 2).Range.Text = "Value"

        .Cell(2, 1).Range.Text = "Subject"
        .Cell(2, 2).Range.Text = CType( _
            Me.Application.ActiveDocument.BuiltInDocumentProperties,  _
            Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()

        .Cell(3, 1).Range.Text = "Author"
        .Cell(3, 2).Range.Text = CType( _
            Me.Application.ActiveDocument.BuiltInDocumentProperties,  _
            Office.DocumentProperties) _
            (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()
    End With
End Sub
private void CreateDocumentPropertyTable()
{
    object start = 0, end = 0;
    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Range(ref start, ref end);

    // Insert a title for the table and paragraph marks. 
    rng.InsertBefore("Document Statistics");
    rng.Font.Name = "Verdana";
    rng.Font.Size = 16;
    rng.InsertParagraphAfter();
    rng.InsertParagraphAfter();
    rng.SetRange(rng.End, rng.End);

    // Add the table.
    rng.Tables.Add(document.Paragraphs[2].Range, 3, 2, ref missing, ref missing);

    // Format the table and apply a style. 
    Word.Table tbl = document.Tables[1];
    tbl.Range.Font.Size = 12;
    tbl.Columns.DistributeWidth();

    object styleName = "Table Professional";
    tbl.set_Style(ref styleName);

    // Insert document properties into cells. 
    tbl.Cell(1, 1).Range.Text = "Document Property";
    tbl.Cell(1, 2).Range.Text = "Value";

    tbl.Cell(2, 1).Range.Text = "Subject";
    tbl.Cell(2, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString();

    tbl.Cell(3, 1).Range.Text = "Author";
    tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties))
        [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString();
}

Voir aussi

Tâches

Comment : créer des tableaux Word par programmation

Comment : ajouter du texte et une mise en forme aux cellules des tableaux Word par programmation

Comment : ajouter des lignes et des colonnes à des tableaux Word par programmation

Concepts

Paramètres optionnels dans les solutions Office