altClick

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

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

プログラム

//////////////////////////////////////////////////
// 【引数】
//   IE : IEオブジェクト 
//   alt : クリックするalt属性 
//   num : 何番目をクリックするか 
//   fullMatchFlg : 完全一致した要素をクリックする場合はTrue、部分一致した要素の場合はFalseを指定 
// 【戻値】
//   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行目
    	DIM cnt = 0
    
    画像の数を代入する変数cntを宣言。
  2. 3行目
    	IMG_LST = IE.document.Images
    
    Webページ上にある画像情報を取得。
  3. 4行目
    	IFB num = -1 THEN
    
    変数numが-1ならば5行目>>>、それ以外ならば15行目>>>
  4. 5-13行目
    		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-38行目
    		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
    
    画像の数だけループ。
    FullMatchFlgがTRUEならば
    n番目のalt属性が変数altと完全一致したら、変数cntをインクリメントする。変数cnt・numが等しくなったら、n番目の画像をクリックする。変数flgにTRUEを代入してFOR文を抜ける。
    FullMatchFlgがFALSEならば
    n番目のalt属性が変数altと部分一致したら、変数cntをインクリメントする。変数cnt・numが等しくなったら、n番目の画像をクリックする。変数flgにTRUEを代入してFOR文を抜ける。
    変数flgを戻値として返す。