GETALLWIN

全ウィンドウのIDを取得します。

構文
  1. Integer = GETALLWIN( [ID] )
引数
ID
指定ウィンドウの子ウィンドウを取得したい場合に、親ウィンドウIDを指定
戻り値

取得したWindowの数 (For In 構文にて指定された場合は各要素を返す)

取得したIDは配列変数の ALL_WIN_ID[ ] に格納される (配列はゼロから)

プログラム実行例

表示されているすべてのウィンドウのスクリーンショットを保存

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

DIM folderspec = "D:\Desktop\Screenshot"
IF FSO.FolderExists(folderspec) = FALSE THEN FSO.CreateFolder(folderspec)

FOR n = 0 TO GETALLWIN() - 1
	DIM ID = ALL_WIN_ID[n]
	IFB STATUS(ID, ST_VISIBLE) = TRUE		
		DIM filename = ID + "_" + STATUS(ID, ST_TITLE)
		filename = PathCleanupSpec(filename)
		DIM path = FSO.BuildPath(folderspec, filename)
		path = uniqueFilename(path)
		SAVEIMG(path, id)
	ENDIF
NEXT
  1. CREATEOLEOBJ
  2. FSO.FolderExists
  3. FSO.CreateFolder
  4. GETALLWIN
  5. STATUS
  6. PathCleanupSpec
  7. FSO.BuildPath
  8. uniqueFilename
  9. SAVEIMG

総段落数を取得

CONST wdDoNotSaveChanges = 0
CONST wdSaveChanges = -1

DIM arr[-1]

FOR n = 0 TO GETALLWIN() - 1
	arrayPush(arr, ALL_WIN_ID[n])
NEXT

arrayFilter(arr, "STATUS(%val%, ST_CLASS) = <#DBL>OpusApp<#DBL> AND STATUS(%val%, ST_VISIBLE)")
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

PRINT Word.ActiveDocument.Paragraphs.Count
  1. GETALLWIN
  2. arrayPush
  3. arrayFilter
  4. STATUS
  5. arrayMap
  6. REPLACE
  7. QSORT
  8. GETACTIVEOLEOBJ
  9. MSGBOX
  10. SLCTBOX
  11. Word.Documents
  12. Word.Documents.Item
  13. Word.Document.Activate
  14. Word.Application.ActiveDocument
  15. Word.Document.Paragraphs
  16. Word.Paragraphs.Count

指定したキーワードに下線を引く(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
  1. GETALLWIN
  2. arrayPush
  3. arrayFilter
  4. arrayMap
  5. QSORT
  6. GETACTIVEOLEOBJ
  7. MSGBOX
  8. SLCTBOX
  9. Word.Documents.Item
  10. Word.Document.Activate
  11. Word.Application.ActiveDocument
  12. Word.Document.Content
  13. Word.Range.SetRange
  14. Word.Range.Find
  15. Word.Find.Text
  16. Word.Find.Forward
  17. Word.Find.Wrap
  18. Word.Find.Execute
  19. Word.Range.Expand
  20. Word.Range.Underline
  21. Word.Range.Collapse
  22. Word.Documents.Close
  23. Word.Application.Quit

Was this post helpful?

関連記事

ACW
指定したIDのウィンドウの位置・サイズを変更します。IDのみを指定した場合、そのウィンドウをアクティブにします。
CTRLWIN
ウィンドウの状態を操作します。ウィンドウを終了、アクティブ化、表示・非表示、最大化・最小化などができます。
CascadeWindows
デスクトップ上のすべてのウィンドウをカスケードします。この方法は、タスクバーを右クリックして「重ねて表示」を選択するのと同じ効果があります。
arraySearch
配列の中から指定した要素が見つかった場合、その要素がある最初のインデックスを返します。
MinimizeAll
デスクトップ上のすべてのウィンドウを最小化します。この方法は、タスクバーを右クリックして古いシステムで[すべてのウィンドウを最小化]を選択するか、Windows 2000またはWindows XPのタスクバーのクイック起動領域にある[デスクトップの表示]アイコンをクリックするのと同じ効果があります。
heapSort
引数に指定された配列をヒープソートで並び替えます。
quickSort
問題を小さな部分問題に分割していく分割統治法を利用した手法で、データから適当に基準値を決めこれより大きいグループと小さいグループに分けるという手順を、分けた小さなグループに対しても再帰的に繰り返していきます。
arrayReverse
引数に指定した配列を逆順にして返します。
oddEvenSort
奇偶転置ソートは、ソートのアルゴリズムの一つで、バブルソートを改良したもの。バブルソートではスキャンを一方向に順次行うのに対し、奇偶転置ソートでは組ごとに行います。
TileHorizontally
すべてのウィンドウを上下に並べて表示します。
TileVertically
すべてのウィンドウを左右に並べて表示します。
UndoMinimizeALL
MinimizeAllで最小化したウィンドウを元に戻します。
FOR-IN-NEXT
配列やコレクションなどのグループの各要素に対して繰り返し処理を行います。
shearSort
シェアソートはソートアルゴリズムの一つで、データを長方形に並べた上で各行・各列ごとにソートを行ないます。
bogoSort
要素をランダムに並べ替えることで偶発的な一致を試みる整列アルゴリズムです。
CALCARRAY
配列の合計値・最小値・最大値・平均値を求めます。
CHKBTN
指定したIDのウィンドウにあるチェックボックス・ラジオボタンがチェックされているかを返します。
CLKITEM
指定したIDのウィンドウのアイテムをクリックします。アイテムに指定できるものにはボタン・チェックボックス・ラジオボタン・リストボックス・コンボボックス・タブコントロール・メニュー・ツリービュー・リストビュー・ツールバー・リンクがあります。
UBound
配列の最大インデックスを返します。
GETCTLHND
ボタン等、オブジェクトのハンドルを取得します。
GETID
指定したウィンドウのIDを取得します。第一引数に取得したいウィンドウのタイトル(一部でも可)を指定します。UWSCでウィンドウを操作するのによく使う関数です。
GETITEM
指定したIDのウィンドウのキャプション文字やリストなどを取得すします。取得した情報は配列変数のALL_ITEM_LIST[ ]に格納されます。戻値は取得した数でInteger型です。
divisors
引数に指定した数値の約数をリストを配列で返します。
GETSLIDER
スライダー(トラックバー、スクロールバー)の値を取得します。
GETSTR
引数に指定したIDのウィンドウの文字列を取得します。取得した文字列を返します。
HNDTOID
引数に指定したハンドル値をIDに変換して返します。IDをハンドル値に変換するにはIDTOHND関数を使います。
IDTOHND
引数に指定したIDをハンドル値に変換して返します。ハンドル値をIDに変換するにはHNDTOID関数を使います。
JOIN
引数に指定した配列を結合し文字列を返します。
MOUSEORG
マウス座標を相対座標にする、 またはマウスとキー情報を直接ウィンドウへ送ります。
POPUPMENU
ポップアップメニューを表示し、引数に指定した配列の中から選択された項目の要素番号を取得します。選択された項目を取得したい場合は、POPUPMENUの戻値を引数に指定した配列の要素番号として指定します。
QSORT
QSORT関数は、配列の中身をソートする関数です。戻値はありません。昇順・降順・UNICODE文字比較 昇順・UNICODE文字比較 降順・自然順ソート 昇順・自然順ソート 降順のいずれかを指定することができます。
RESIZE
配列のサイズを変更します。第二引数を省略した場合はサイズを取得します。
SCKEY
ショートカットキーを実行します。
SENDSTR
指定したIDのウィンドウに文字列を送信します。キー入力をする場合はKBD関数を使います。
連想配列
連想配列とは、自動的に割り当てられる数字をキーとして持つかわりに、自由に任意の文字列を割り振ることができる配列のことです。添え字に番号の変わりに名前をつけることでわかりやすく管理することができます。
SETCLEAR
配列のすべての要素を任意の値で埋めます。
SETSLIDER
スライダー(トラックバー、スクロールバー)の値を設定します。
SHIFTARRAY
配列を指定した値だけシフトします。プラス値で後方、マイナス値で前方にシフトします。
SLICE
SLICE関数は、配列の中を指定範囲の配列で返す関数です。第一引数に配列を指定し、第二引数に開始位置、第三引数に終了位置を指定します。第二・第三引数は省略可能で、省略した場合は配列全体を返します。戻値はsafearray型です。
SPLIT
SPLIT関数は、引数に指定された文字列を区切文字列で区切り配列に格納します。区切文字列を省略した場合、スペースが区切文字列となります。戻値は配列でsafearray型です。
STATUS
ウィンドウの各種状態を取得します。タイトル・クラス名・X座標・Y座標・幅・高さなどを取得することができます。
inArray
bubbleSort
引数に指定した配列をバブルソートで並び替えます。
shakerSort
シェーカーソートは、ソートのアルゴリズムの一つです。バブルソートを改良したもの。双方向バブルソート、改良交換法とも言われます。バブルソートではスキャンを一方向にしか行わないのに対し、シェーカーソートでは交互に二方向に行います。
combSort
コムソートではソートの初期段階では離れた要素を比較交換します。そして徐々に2つの要素間の距離を縮めて、最後に直接隣接している要素どうしの比較交換を行います。
gnomeSort
ノームソートはソートアルゴリズムの一つです。挿入ソートに似ているが、要素の移動は挿入ではなくバブルソートのような一連の交換で行います。
selectionSort
選択ソートは、ソートのアルゴリズムの一つ。配列された要素から、最大値やまたは最小値を探索し配列最後の要素と入れ替えを行うことでソートします。
insertionSort
挿入ソートは、ソートのアルゴリズムの一つ。整列してある配列に追加要素を適切な場所に挿入します。
shellSort
シェルソートは挿入ソートが改良された整列アルゴリズムです。リストにおいてあらかじめ離れている要素を交換しておき、最終的に挿入ソートを実行します。
mergeSort
マージソートは整列されていないリストを2つのリストに分割して、それぞれを整列させた後、それらをマージして整列済みのひとつのリストを作ります。