altClickオルトクリック関数

本ページには広告が含まれています。

Web上(IE)の指定したalt属性を含む画像をクリックします。クリックに成功した場合はTrue、失敗した場合はFalseを返します。

構文
  1. Boolean = altClick( IE, alt, num, fullMatchFlg )
引数
IE 必須
IEオブジェクト
alt 必須
クリックするalt属性
num 省略可
何番目をクリックするか
fullMatchFlg 省略可
完全一致した要素をクリックする場合はTrue、部分一致した要素の場合はFalseを指定
戻り値
TRUE
成功
FALSE
失敗

プログラム

UWSC
//////////////////////////////////////////////////
// 【引数】
//   IE : IEオブジェクト 
//   alt : クリックするalt属性 
//   num : 何番目をクリックするか 
//   fullMatchFlg : 完全一致した要素をクリックする場合はTrue、部分一致した要素の場合はFalseを指定 
// 【戻り値】
//   
//////////////////////////////////////////////////
FUNCTION altClick(IE, alt, num = 1, fullMatchFlg = FALSE)
	DIM cnt = 0
	IMG_LST = IE.document.Images
	IFB num = -1 THEN
		FOR n = 0 TO IMG_LST.length - 1
			SELECT fullMatchFlg
				CASE TRUE
					IF IMG_LST.Item(n).Alt = alt THEN cnt = cnt + 1
				CASE FALSE
					IF POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN cnt = cnt + 1
			SELEND
		NEXT
		RESULT = cnt
	ELSE
		DIM flg = FALSE
		FOR n = 0 TO IMG_LST.length - 1
			SELECT fullMatchFlg
				CASE TRUE
					IFB IMG_LST.Item(n).Alt = alt THEN
						cnt = cnt + 1
						IFB cnt = num THEN
							IMG_LST.Item(n).Click()
							flg = TRUE
							BREAK
						ENDIF
					ENDIF
				CASE FALSE
					IFB POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN
						cnt = cnt + 1
						IFB cnt = num THEN
							IMG_LST.Item(n).Click()
							flg = TRUE
							BREAK
						ENDIF
					ENDIF
			SELEND
		NEXT
		RESULT = flg
	ENDIF
FEND

解説

  1. 2行目
    UWSC
    	DIM cnt = 0
    画像の数を代入する変数cntを宣言。
  2. 3行目
    UWSC
    	IMG_LST = IE.document.Images
    Webページ上にある画像情報を取得。
  3. 4,14,39行目
    UWSC
    	IFB num = -1 THEN
    		…
    	ELSE
    		…
    	ENDIF
    変数numが-1ならば5行目>>>、それ以外ならば15行目>>>
  4. 5-13行目
    UWSC
    		FOR n = 0 TO IMG_LST.length - 1
    			SELECT fullMatchFlg
    				CASE TRUE
    					IF IMG_LST.Item(n).Alt = alt THEN cnt = cnt + 1
    				CASE FALSE
    					IF POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN cnt = cnt + 1
    			SELEND
    		NEXT
    		RESULT = cnt
    画像の数だけループ。fullMatchFlg(完全一致フラグ)がTRUEでn番目の画像のalt属性と変数altが完全一致していたら、変数cntをインクリメントする。fullMatchFlg(完全一致フラグ)がFALSEでn番目の画像のalt属性に変数altが含まれて(部分一致して)いたら、変数cntをインクリメント。変数cntを戻り値として返す。
  5. 15行目
    UWSC
    		DIM flg = FALSE
    画像をクリックしたかどうかを代入する変数。クリックされたらTrue。
  6. 16-37行目
    UWSC
    		FOR n = 0 TO IMG_LST.length - 1
    			SELECT fullMatchFlg
    				CASE TRUE
    					IFB IMG_LST.Item(n).Alt = alt THEN
    						cnt = cnt + 1
    						IFB cnt = num THEN
    							IMG_LST.Item(n).Click()
    							flg = TRUE
    							BREAK
    						ENDIF
    					ENDIF
    				CASE FALSE
    					IFB POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN
    						cnt = cnt + 1
    						IFB cnt = num THEN
    							IMG_LST.Item(n).Click()
    							flg = TRUE
    							BREAK
    						ENDIF
    					ENDIF
    			SELEND
    		NEXT
    画像の数だけループ。n番目のalt属性が変数altと完全一致または部分一致したら、変数cntをインクリメント。cnt=numでその画像をクリックしflgをTrueにして、FOR文を抜ける。
  7. 38行目
    UWSC
    		RESULT = flg
    変数flgを戻り値として返す。

関連記事

IE.Refresh2 メソッド
指定されたリフレッシュレベルで現在表示されているファイルを再読み込みします。
CHKIMG関数 (スクリプト関数)
指定画像が画面上にあるかチェックしあればその情報を返します。
SAVEIMG関数 (スクリプト関数)
SAVEIMGは、第一引数に指定した絶対パス・相対パスに画像を保存する関数です。第一引数を省略した場合クリップボードに、第二引数に0を指定でスクリーン全体をコピーします。
getBitmap関数 (自作関数)
引数に指定したビットマップ画像のサイズ(px)・幅(px)・高さ(px)・ビットの深さ(bpp)を配列で返します。
IEGETFRAME関数 (スクリプト関数)
BusyWait関数 (自作関数)
IEオブジェクトの読み込みが完了するのを待ちます。
IE.ExecWB メソッド
コマンドを実行します。
IE.GoForward メソッド
履歴リストの1つ後の項目に移動します。
IE.Stop メソッド
読込中のWebページやダウンロードのキャンセル、BGMやアニメーションの動的要素を停止します。
IE.Document プロパティ
ドキュメントオブジェクトを取得