本ページには広告が含まれています。
Range オブジェクトを返します。
- 構文
- Range = Document.Content
- 引数
- 戻り値
- Range オブジェクト
プログラム実行例
指定したキーワードに下線を引く(Word)
CONST wdDoNotSaveChanges = 0 // 保留中の変更を保存しない
CONST wdSaveChanges = -1 // 保留中の変更をユーザーに確認しないで自動的に保存する
CONST wdPromptToSaveChanges = -2 // 保留中の変更を保存するかどうかをユーザーに確認する
CONST wdFindStop = 0
CONST wdCharacter = 1
CONST wdUnderlineSingle = 1
CONST wdCollapseEnd = 0
DIM arr[-1]
// すべてのIDをarr変数に格納
FOR n = 0 TO GETALLWIN() - 1
arrayPush(arr, ALL_WIN_ID[n])
NEXT
// クラス名がOpusApp、通常の表示状態であるものを抽出
arrayFilter(arr, "STATUS(%val%, ST_CLASS) = <#DBL>OpusApp<#DBL> AND STATUS(%val%, ST_VISIBLE)")
// IDからタイトルを取得し、そのタイトルから「 - Microsoft Word」を削除
arrayMap("REPLACE(STATUS(%val%, ST_TITLE), <#DBL> - Microsoft Word<#DBL>, <#DBL><#DBL>)", arr)
QSORT(arr, QSRT_A)
TRY
DIM Word = GETACTIVEOLEOBJ("Word.Application")
EXCEPT
MSGBOX("操作する文書を開いてください。")
EXIT
ENDTRY
DIM res = SLCTBOX(SLCT_RDO OR SLCT_STR, 0, "操作する文書を選択", arr)
IFB res = -1 THEN
MSGBOX("ファイル名が選択されなかったので終了します。")
EXIT
ENDIF
Word.Documents(res).Activate
DIM Document = Word.Application.ActiveDocument
DIM Range = Document.Content
// 下線を引くキーワード
DIM keywords[] = "ギャラリー", "オプション", "テーマ"
FOR item IN keywords
Range.SetRange(0, 0)
WITH Range.Find
.Text = item
.Forward = TRUE
.Wrap = wdFindStop
WHILE .Execute = TRUE
WITH Range
.Expand(wdCharacter) // 範囲
.Underline = wdUnderlineSingle // 下線を引く
.Collapse(wdCollapseEnd)
ENDWITH
WEND
ENDWITH
NEXT
//Word.Documents.Close(wdSaveChanges)
//Word.Quit
//////////////////////////////////////////////////
// 【引数】
// array : 一次元配列。参照引数。
// callback : コールバック関数。callback内で配列の値は「%val%」で使うことができます。
// 【戻り値】
// callback関数によりフィルタ処理が行われたarrayの全ての要素を含む配列を返します。
//////////////////////////////////////////////////
PROCEDURE arrayFilter(var array[], callback)
DIM n = 0
DIM tmp[-1]
FOR %val% IN array
IFB EVAL(callback) THEN
RESIZE(tmp, n)
tmp[n] = %val%
n = n + 1
ENDIF
NEXT
RESIZE(array, RESIZE(tmp))
FOR n = 0 TO RESIZE(tmp)
array[n] = tmp[n]
NEXT
FEND
//////////////////////////////////////////////////
// 【引数】
// array : 要素を追加する配列(参照引数)
// values : 追加する要素をvalue1から指定
// 【戻り値】
// 処理後の配列の要素の数
//////////////////////////////////////////////////
FUNCTION arrayPush(var array[], value1 = EMPTY, value2 = EMPTY, value3 = EMPTY, value4 = EMPTY, value5 = EMPTY, value6 = EMPTY, value7 = EMPTY, value8 = EMPTY, value9 = EMPTY, value10 = EMPTY, value11 = EMPTY, value12 = EMPTY, value13 = EMPTY, value14 = EMPTY, value15 = EMPTY, value16 = EMPTY)
DIM i = 1
WHILE EVAL("value" + i) <> EMPTY
DIM res = RESIZE(array, UBound(array) + 1)
array[res] = EVAL("value" + i)
i = i + 1
WEND
RESULT = LENGTH(array)
FEND
//////////////////////////////////////////////////
// 【引数】
// inputs : 繰り返す文字列
// multiplier : inputsを繰り返す回数
// 【戻り値】
// inputsをmultiplier回を繰り返した文字列を返します
//////////////////////////////////////////////////
FUNCTION strRepeat(inputs, multiplier)
DIM res = ""
FOR n = 1 TO multiplier
res = res + inputs
NEXT
RESULT = res
FEND
//////////////////////////////////////////////////
// 【引数】
// arrayname : 上限値を求める配列の名前
// dimension : 返す次元を示す整数
// 【戻り値】
// 配列の上限値
//////////////////////////////////////////////////
FUNCTION UBound(arrayname[], dimension = 1)
RESULT = EVAL("RESIZE(arrayname" + strRepeat("[0]", dimension - 1) + ")")
FEND
使用関数