Utilisation des tableaux
Cette rubrique contient des exemples Visual Basic liés aux tâches identifiées dans les sections suivantes.
Création d'un tableau, insertion de texte et application d'une mise en forme
Cet exemple montre comment insérer au début du document actif un tableau constitué de quatre colonnes et trois lignes. La structure For Each...Next est utilisée pour passer dans chacune des cellules du tableau. Au sein de cette structure For Each...Next, la méthode InsertAfter de l'objet Range est utilisée pour ajouter du texte dans les cellules du tableau (« Cell 1 », « Cell 2 », etc.).
Sub CreateNewTable()
Dim docActive As Document
Dim tblNew As Table
Dim celTable As Cell
Dim intCount As Integer
Set docActive = ActiveDocument
Set tblNew = docActive.Tables.Add( _
Range:=docActive.Range(Start:=0, End:=0), NumRows:=3, _
NumColumns:=4)
intCount = 1
For Each celTable In tblNew.Range.Cells
celTable.Range.InsertAfter "Cell " & intCount
intCount = intCount + 1
Next celTable
tblNew.AutoFormat Format:=wdTableFormatColorful2, _
ApplyBorders:=True, ApplyFont:=True, ApplyColor:=True
End Sub
Insertion de texte dans une cellule de tableau
Cet exemple montre comment insérer du texte dans la première cellule du premier tableau du document actif. La méthode Cell renvoie un seul objet Cell . La propriété Range renvoie un objet Range. La méthode Delete est utilisée pour supprimer le texte existant, et la méthode InsertAfter pour insérer le texte « Cell 1,1 ».
Sub InsertTextInCell()
If ActiveDocument.Tables.Count >= 1 Then
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=1).Range
.Delete
.InsertAfter Text:="Cell 1,1"
End With
End If
End Sub
Renvoi du texte d'une cellule de tableau sans l'indicateur de fin de cellule
Cet exemple montre comment renvoyer et afficher le contenu de chacune des cellules situées dans la première ligne du premier tableau du document.
Sub ReturnTableText()
Dim tblOne As Table
Dim celTable As Cell
Dim rngTable As Range
Set tblOne = ActiveDocument.Tables(1)
For Each celTable In tblOne.Rows(1).Cells
Set rngTable = ActiveDocument.Range(Start:=celTable.Range.Start, _
End:=celTable.Range.End - 1)
MsgBox rngTable.Text
Next celTable
End Sub
Sub ReturnCellText()
Dim tblOne As Table
Dim celTable As Cell
Dim rngTable As Range
Set tblOne = ActiveDocument.Tables(1)
For Each celTable In tblOne.Rows(1).Cells
Set rngTable = celTable.Range
rngTable.MoveEnd Unit:=wdCharacter, Count:=-1
MsgBox rngTable.Text
Next celTable
End Sub
Conversion de texte en tableau
Cet exemple montre comment insérer du texte délimité par des tabulations au début du document actif, puis convertir le texte en tableau.
Sub ConvertExistingText()
With Documents.Add.Content
.InsertBefore "one" & vbTab & "two" & vbTab & "three" & vbCr
.ConvertToTable Separator:=Chr(9), NumRows:=1, NumColumns:=3
End With
End Sub
Renvoi du contenu de chacune des cellules d'un tableau
Cet exemple montre comment définir un tableau égal au nombre de cellules contenues dans le premier tableau du document (en admettant Option Base 1). La structure For Each...Next est utilisée pour renvoyer le contenu de chacune des cellules du tableau et affecter le texte à l'élément de tableau correspondant.
Sub ReturnCellContentsToArray()
Dim intCells As Integer
Dim celTable As Cell
Dim strCells() As String
Dim intCount As Integer
Dim rngText As Range
If ActiveDocument.Tables.Count >= 1 Then
With ActiveDocument.Tables(1).Range
intCells = .Cells.Count
ReDim strCells(intCells)
intCount = 1
For Each celTable In .Cells
Set rngText = celTable.Range
rngText.MoveEnd Unit:=wdCharacter, Count:=-1
strCells(intCount) = rngText
intCount = intCount + 1
Next celTable
End With
End If
End Sub
Copie de tous les tableaux du document actif dans un nouveau document
Cet exemple montre comment copier les tableaux du document actif dans un nouveau document.
Sub CopyTablesToNewDoc()
Dim docOld As Document
Dim rngDoc As Range
Dim tblDoc As Table
If ActiveDocument.Tables.Count >= 1 Then
Set docOld = ActiveDocument
Set rngDoc = Documents.Add.Range(Start:=0, End:=0)
For Each tblDoc In docOld.Tables
tblDoc.Range.Copy
With rngDoc
.Paste
.Collapse Direction:=wdCollapseEnd
.InsertParagraphAfter
.Collapse Direction:=wdCollapseEnd
End With
Next
End If
End Sub
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.
Commentaires
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Envoyer et afficher des commentaires pour