UDF > Word >


_Word_DocRangeSet

Définit ou modifie une plage dans un document

#include <Word.au3>
_Word_DocRangeSet ( $oDoc, $vRange [, $iStartUnit = Default [, $iStartCount = Default [, $iEndUnit = Default [, $iEndCount = Default]]]] )

Paramètres

$oDoc Objet document Word
$vRange Plage à définir ou étendre. Vous pouvez passer dans ce paramètre, une plage existante qui est ensuite étendu. Les valeurs possibles sont:
     0 - Utilise la sélection actuelle comme plage
    -1 - Définit début/fin de la plage au début du document
    -2 - Définit début/fin de la plage à la fin du dcoument
$iStartUnit [optionnel] Unité avec laquelle la position de départ de la plage doit être déplacée/définie.
Peut prendre toute valeur de l'énumération WdUnit (par défaut = $WdWord).
Lorsque ce paramètre est défini à -1 la plage est réduite en début de plage
$iStartCount [optionnel] Nombre d'unités avec lequel le début de la plage est déplacée/définie.
Les nombres positifs décalent la plage en avant dans le document.
Si la position est déplacée vers l'avant à une position au-delà de la position de fin de la plage, la plage est réduite et les positions de début et de fin sont déplacées ensemble (par défaut = ne déplace pas la position de départ)
$iEndUnit [optionnel] Unité avec laquelle la position de fin de la plage doit être déplacée/définie.
Peut prendre toute valeur de l'énumération WdUnit (par défaut = $WdWord).
Si ce paramètre est défini à -1 la plage est réduite en fin de plage
$iEndCount [optionnel] Nombre d'unités avec lequel la fin de la plage est déplacée/définie.
Si ce nombre est négatif, la fin est déplacée vers l'arrière.
Si la position de fin dépasse la position de départ, la plage est réduite et les deux positions se déplacent ensemble (par défaut = ne déplace pas la position de fin)

Valeur de retour

Succès: Retourne l'objet Range modifié.
Échec: Retourne 0 et définit @error <> 0.
@error: 1 - $oDoc n'est pas un objet
2 - $vRange doit être un objet Range, 0 ou -1
3 - Une erreur s'est produite lors de la définition du début de la plage. @extended contient le code d'erreur COM
4 - Une erreur s'est produite lors de la définition de la fin de la plage. @extended contient le code d'erreur COM

Exemple

#include <MsgBoxConstants.au3>
#include <Word.au3>

; Créer un objet application
Local $oRange, $oWord = _Word_Create()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", _
        "Error creating a new Word application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Ouvre le document test
Local $oDoc = _Word_DocOpen($oWord, @ScriptDir & "\Extras\Test.doc", Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", _
        "Error opening '.\Extras\Test.doc'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

;
; Scénario 1
; Déplace le début de la plage au paragraphe suivant et prolonge la fin de 2
; mots. Insére du texte avant et après la plage et affiche quelques statistiques
;
; Déplace le début de la plage au paragraphe suivant et prolonge la fin de 2 mots
$oRange = _Word_DocRangeSet($oDoc, -1, $wdParagraph, 1, Default, 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", _
        "Error setting/expanding range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
$oRange.Select
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", _
        "Range has been successfully set to the first two words in the second paragraph.")

; Insére du texte avant la plage
$oRange.InsertBefore("Inserted text at the start! ")
$oRange.Select
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", "Inserted text at the start of the range.")

; Insére du texte après la plage
$oRange.InsertAfter("inserted text at the end! ")
$oRange.Select
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", "Inserted text at the end of the range.")

; Affiche quelques statistiques
Local $iWords = $oRange.ComputeStatistics(0)
Local $iCharacters = $oRange.ComputeStatistics(3)
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", "The selected range has:" & @CRLF & _
        $iWords & " words " & @CRLF & $iCharacters & " characters.")

;
; Scénario 2
; Déplace la fin de la plage d'un caractère vers la gauche afin que l'espace avec le mot suivant
; soit manquant et formate le texte en gras, italique et souligné
;
$oRange = _Word_DocRangeSet($oDoc, $oRange, Default, Default, $wdCharacter, -1)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", _
        "Error setting/expanding range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Formate la plage en gras, italique et soulignement
$oRange.Bold = True
$oRange.Italic = True
$oRange.Underline = True
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", "Added some formatting.")

;
; Scénario 3
; Réduit la plage à la longueur 0 (insère une marque) et insére un saut de ligne
;
$oRange = _Word_DocRangeSet($oDoc, $oRange, Default, Default, -1, Default)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", _
        "Error setting/expanding range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
$oRange.InsertBreak($wdLineBreak)
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", "Inserted a break.")

;
; Scénario 4
; Déplace la plage au premier caractère de la ligne suivante (espace) et l'enléve
;
$oRange = _Word_DocRangeSet($oDoc, $oRange, Default, Default, $wdCharacter, 1)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", _
        "Error setting/expanding range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
$oRange.Delete
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", "Deleted a character.")