Sets or modifies a range in a document
#include <Word.au3>
_Word_DocRangeSet ( $oDoc, $vRange [, $iStartUnit = Default [, $iStartCount = Default [, $iEndUnit = Default [, $iEndCount = Default]]]] )
$oDoc | Word document object |
$vRange | Range to set or extend. You can pass an existing range which then is extended. Also valid is: 0 - uses the current selection as range -1 - sets the range start/end at the start of the document -2 - sets the range start/end at the end of the document |
$iStartUnit | [optional] Unit by/to which the start position of the range is to be moved/set. Can be any of the WdUnit enumeration (default = $WdWord). When set to -1 the range is collapsed to the start of the range |
$iStartCount | [optional] Number of units by/to which the start of range is moved/set. Positive numbers move the range forward in the document. If the position is moved forward to a position beyond the end position of the range, the range is collapsed and both the start and end positions are moved together(default = don't move the start position) |
$iEndUnit | [optional] Unit by/to which the end position of the range is to be moved/set. Can be any of the WdUnit enumeration (default = $WdWord). When set to -1 the range is collapsed to the end of the range |
$iEndCount | [optional] Number of units by/to which the end of the range is moved/set. If this number is negative, the end is moved backward. If the ending position overtakes the starting position, the range collapses and both positions move together (default = don't move the end position) |
Success: | the modified range object. |
Failure: | 0 and sets the @error flag to non-zero. |
@error: | 1 - $oDoc is not an object 2 - $vRange has to be a range object, 0 or -1 3 - Error occurred when setting the start of the range. @extended is set to the COM error code 4 - Error occurred when setting the end of the range. @extended is set to the COM error code |
#include <MsgBoxConstants.au3>
#include <Word.au3>
; Create application object
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)
; Open the test document
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)
; Scene 1
; Move the start of the range to the next paragraph and extend the end by 2
; words. Insert text before and after the range and display some statistics
; Move the start of the range to the next paragraph and extend the end by 2 words
$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.")
; Insert some text before the range
$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.")
; Insert some text after the range
$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.")
; Display some statistics
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.")
; Scene 2
; Move the end of the range one character to the left so the space to the next
; word isn't formatted and format the text bold, italic and underlined
$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)
; Format the range bold, italic und underline
$oRange.Bold = True
$oRange.Italic = True
$oRange.Underline = True
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocRangeSet Example", "Added some formatting.")
; Scene 3
; Collapse the range to 0 length (insert mark) and insert a line break
$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.")
; Scene 4
; Move the range to the first character in the next line (space) and remove it
$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.")