Comment : exclure les marques de paragraphe lors de la création de plages
Mise à jour : novembre 2007
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
Chaque fois que vous créez un objet Range reposant sur un paragraphe, tous les caractères non imprimables, tels que les marques de paragraphe, sont inclus dans la plage. Vous souhaitez peut-être insérer le texte d'un paragraphe source dans un paragraphe de destination. Si vous ne souhaitez pas fractionner le paragraphe de destination en paragraphes séparés, vous devez d'abord supprimer la marque de paragraphe du paragraphe source. En outre, étant donné que les informations relatives à la mise en forme de paragraphe sont stockées dans la marque de paragraphe, il est possible que vous ne vouliez pas les inclure lorsque vous insérez la plage dans un paragraphe existant.
L'exemple de procédure suivant déclare deux variables chaîne, récupère le contenu des premier et deuxième paragraphes du document actif, puis échange leur contenu. L'exemple illustre ensuite la suppression de la marque de paragraphe dans la plage à l'aide de la méthode MoveEnd et l'insertion du texte à l'intérieur du paragraphe.
Pour contrôler la structure de paragraphe lors de l'insertion de texte
Créez deux variables de portée pour les premier et deuxième paragraphes et récupérez leur contenu à l'aide de la propriété Text.
L'exemple de code suivant peut être utilisé dans une personnalisation au niveau du document.
Dim firstRange As Word.Range = Me.Paragraphs(1).Range Dim secondRange As Word.Range = Me.Paragraphs(2).Range Dim firstString As String = firstRange.Text Dim secondString As String = secondRange.Text
Word.Range firstRange = this.Paragraphs[1].Range; Word.Range secondRange = this.Paragraphs[2].Range; string firstString = firstRange.Text; string secondString = secondRange.Text;
L'exemple de code suivant peut être utilisé dans un complément d'application. Ce code utilise le document actif.
Dim document As Word.Document = Me.Application.ActiveDocument Dim firstRange As Word.Range = document.Paragraphs(1).Range Dim secondRange As Word.Range = document.Paragraphs(2).Range Dim firstString As String = firstRange.Text Dim secondString As String = secondRange.Text
Word.Document document = this.Application.ActiveDocument; Word.Range firstRange = document.Paragraphs[1].Range; Word.Range secondRange = document.Paragraphs[2].Range; string firstString = firstRange.Text; string secondString = secondRange.Text;
Assignez la propriété Text, en échangeant le texte entre les deux paragraphes.
firstRange.Text = secondString secondRange.Text = firstString
firstRange.Text = secondString; secondRange.Text = firstString;
Sélectionnez chaque plage une après l'autre et marquez une pause pour afficher les résultats dans une boîte de message.
firstRange.Select() MessageBox.Show(firstRange.Text) secondRange.Select() MessageBox.Show(secondRange.Text)
firstRange.Select(); MessageBox.Show(firstRange.Text); secondRange.Select(); MessageBox.Show(secondRange.Text);
Ajustez la firstRange à l'aide de la méthode MoveEnd afin que la marque de paragraphe ne fasse plus partie de la firstRange.
firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1)
object charUnit = Word.WdUnits.wdCharacter; object move = -1; // move left 1 firstRange.MoveEnd(ref charUnit, ref move);
Remplacez le reste du texte dans le premier paragraphe, en assignant une nouvelle chaîne à la propriété Text de la plage.
firstRange.Text = "New content for paragraph 1."
firstRange.Text = "New content for paragraph 1.";
Remplacez le texte de la secondRange, en incluant la marque de paragraphe.
secondRange.Text = "New content for paragraph 2."
secondRange.Text = "New content for paragraph 2.";
Sélectionnez la firstRange et marquez une pause pour afficher les résultats dans un message, puis faites la même chose avec la secondRange.
Étant donné que la firstRange a été redéfinie pour exclure la marque de paragraphe, la mise en forme d'origine du paragraphe est conservée. Toutefois, une phrase a été insérée sur la marque de paragraphe dans la secondRange, supprimant ainsi le paragraphe séparé.
firstRange.Select() MessageBox.Show(firstRange.Text) secondRange.Select() MessageBox.Show(secondRange.Text)
firstRange.Select(); MessageBox.Show(firstRange.Text); secondRange.Select(); MessageBox.Show(secondRange.Text);
Le contenu initial des deux plages a été enregistré comme chaînes, afin de pouvoir rétablir l'état d'origine du document.
Ajustez à nouveau firstRange pour inclure la marque de paragraphe à l'aide de la méthode MoveEnd pour une seule position de caractère.
firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1)
move = 1; // move right 1 firstRange.MoveEnd(ref charUnit, ref move);
Supprimez la secondRange. Cela rétablit l'état initial du paragraphe trois.
secondRange.Delete()
secondRange.Delete(ref missing, ref missing);
Rétablissez le texte de paragraphe initial dans la firstRange.
firstRange.Text = firstString
firstRange.Text = firstString;
Utilisez la méthode InsertAfter de l'objet Range pour insérer le contenu initial du deuxième paragraphe après la firstRange, puis sélectionnez la firstRange.
firstRange.InsertAfter(secondString) firstRange.Select()
firstRange.InsertAfter(secondString); firstRange.Select();
Exemple de personnalisation au niveau du document
Pour contrôler la structure de paragraphe lors de l'insertion de texte dans les personnalisations au niveau du document
L'exemple suivant affiche la méthode complète correspondant à la personnalisation au niveau du document. Pour utiliser ce code, exécutez-le à partir de la classe ThisDocument dans votre projet.
Private Sub ReplaceParagraphText() Dim firstRange As Word.Range = Me.Paragraphs(1).Range Dim secondRange As Word.Range = Me.Paragraphs(2).Range Dim firstString As String = firstRange.Text Dim secondString As String = secondRange.Text firstRange.Text = secondString secondRange.Text = firstString firstRange.Select() MessageBox.Show(firstRange.Text) secondRange.Select() MessageBox.Show(secondRange.Text) firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1) firstRange.Text = "New content for paragraph 1." secondRange.Text = "New content for paragraph 2." firstRange.Select() MessageBox.Show(firstRange.Text) secondRange.Select() MessageBox.Show(secondRange.Text) firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1) secondRange.Delete() firstRange.Text = firstString firstRange.InsertAfter(secondString) firstRange.Select() End Sub
private void ReplaceParagraphText() { Word.Range firstRange = this.Paragraphs[1].Range; Word.Range secondRange = this.Paragraphs[2].Range; string firstString = firstRange.Text; string secondString = secondRange.Text; firstRange.Text = secondString; secondRange.Text = firstString; firstRange.Select(); MessageBox.Show(firstRange.Text); secondRange.Select(); MessageBox.Show(secondRange.Text); object charUnit = Word.WdUnits.wdCharacter; object move = -1; // move left 1 firstRange.MoveEnd(ref charUnit, ref move); firstRange.Text = "New content for paragraph 1."; secondRange.Text = "New content for paragraph 2."; firstRange.Select(); MessageBox.Show(firstRange.Text); secondRange.Select(); MessageBox.Show(secondRange.Text); move = 1; // move right 1 firstRange.MoveEnd(ref charUnit, ref move); secondRange.Delete(ref missing, ref missing); firstRange.Text = firstString; firstRange.InsertAfter(secondString); firstRange.Select(); }
Exemple de complément d'application
Pour contrôler la structure de paragraphe lors de l'insertion de texte dans un complément au niveau de l'application
L'exemple suivant affiche la méthode complète correspondant à un complément d'application. Pour utiliser ce code, exécutez-le à partir de la classe ThisAddIn dans votre projet.
Private Sub ReplaceParagraphText() Dim document As Word.Document = Me.Application.ActiveDocument Dim firstRange As Word.Range = document.Paragraphs(1).Range Dim secondRange As Word.Range = document.Paragraphs(2).Range Dim firstString As String = firstRange.Text Dim secondString As String = secondRange.Text firstRange.Text = secondString secondRange.Text = firstString firstRange.Select() MessageBox.Show(firstRange.Text) secondRange.Select() MessageBox.Show(secondRange.Text) firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1) firstRange.Text = "New content for paragraph 1." secondRange.Text = "New content for paragraph 2." firstRange.Select() MessageBox.Show(firstRange.Text) secondRange.Select() MessageBox.Show(secondRange.Text) firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1) secondRange.Delete() firstRange.Text = firstString firstRange.InsertAfter(secondString) firstRange.Select() End Sub
private void ReplaceParagraphText() { Word.Document document = this.Application.ActiveDocument; Word.Range firstRange = document.Paragraphs[1].Range; Word.Range secondRange = document.Paragraphs[2].Range; string firstString = firstRange.Text; string secondString = secondRange.Text; firstRange.Text = secondString; secondRange.Text = firstString; firstRange.Select(); MessageBox.Show(firstRange.Text); secondRange.Select(); MessageBox.Show(secondRange.Text); object charUnit = Word.WdUnits.wdCharacter; object move = -1; // move left 1 firstRange.MoveEnd(ref charUnit, ref move); firstRange.Text = "New content for paragraph 1."; secondRange.Text = "New content for paragraph 2."; firstRange.Select(); MessageBox.Show(firstRange.Text); secondRange.Select(); MessageBox.Show(secondRange.Text); move = 1; // move right 1 firstRange.MoveEnd(ref charUnit, ref move); secondRange.Delete(ref missing, ref missing); firstRange.Text = firstString; firstRange.InsertAfter(secondString); firstRange.Select(); }
Voir aussi
Tâches
Comment : étendre des plages dans des documents
Comment : réduire des plages ou des sélections dans des documents
Comment : insérer du texte dans les documents Word
Comment : réinitialiser des plages dans les documents Word
Comment : définir et sélectionner des plages dans les documents
Concepts
Fonctionnement des paramètres optionnels dans les solutions Office