//免責事項 //当サイト及び管理人は本スクリプトを使用し、またはその結果の利用により利用者または //第三者に生じた損害や不利益について一切その責任を負いません。 //エクセル関数呼び出し Public IE call ExcelConst.uws EXCELWINDOW = GETID(status(GETID(GET_ACTIVE_WIN),st_title)) EXCEL = GETACTIVEOLEOBJ("Excel.Application") EXCEL.visible = True //IE初期設定 IEtemp = CREATEOLEOBJ("InternetExplorer.Application") IEtemp.visible = true sleep(2) IEID = GETID("Internet Explorer") CTRLWIN(IEID, ACTIVATE) //inPrivateモードで起動。ログアウト状態から始めたいため。 SCKEY(IEID, VK_CTRL, VK_SHIFT, VK_P) sleep(2) IE = getactiveOLEOBJ("InternetExplorer.Application","inPrivate") IE.navigate("https://toku.yahoo.co.jp/shopping201803/lot") CTRLWIN(IEID, CLOSE) BusyWait(IE) IE.navigate("https://login.yahoo.co.jp/config/login?.src=kuji&card_cushion_skip=1&.done=https%3A%2F%2Ftoku.yahoo.co.jp%2Fshopping201803%2Flot") //YahooIDの数だけ繰り返す。 scellrow = VAL(EXCEL.ActiveCell.Row) ecellrow = VAL(COPY(EXCEL.ActiveCell.End(-4121).Address(),4)) LOOPCNTEND = ecellrow - scellrow + 1 //LOOPCNTENDの数だけ繰り返す。 //YahooID 1個だけ処理すると100万回繰り返すのでLOOPCNTENDを調整。 IF LOOPCNTEND > 100000 THEN LOOPCNTEND = 1 else endif CNT = 1 //ループ開始 WHILE CNT <= LOOPCNTEND //エクセルからIDとパスを取得 yahooid = excel.activecell.value yahoopass = excel.activecell.offset(0,1).value iesetdata(IE,yahooid,"login") iesetdata(IE,true,"btnNext") sleep(2) iesetdata(IE,yahoopass,"passwd") iesetdata(IE,true,"btnSubmit") busywait(ie) IF CNT > 1 then IE.navigate("https://toku.yahoo.co.jp/shopping201803/lot") sleep(3) endif //TカードやYahooカード勧誘をスキップ REPEAT IESETDATA(IE,true,"cancel") sleep(0.1) UNTIL POS("ショッピングくじ",IE.document.title) > 0 //くじを牽く IELINK(IE,"くじを引く") sleep(8) pointobj = IE.document.getElementsByclassname("prizeName") point = pointobj.item(0).innertext excel.activecell.offset(0,2).value = point sleep(2) IE.navigate("https://login.yahoo.co.jp/config/login?logout") BusyWait(ie) Excel.activecell.offset(1,0).select yahooid = excel.activecell.value yahoopass = excel.activecell.offset(0,1).value sleep(2) IELINK(IE,"別のYahoo! JAPAN IDでログイン") sleep(2) CNT = CNT + 1 WEND Procedure BusyWait(ie) Sleep(0.5) // Wait Const TIME_OUT = 90 tm = Gettime() repeat Sleep(0.2) ifb Gettime() - tm > TIME_OUT MsgBox("Time Out:BusyWait") ExitExit endif until (! ie.busy) and (ie.readyState=4) Sleep(0.5) Fend IE.Navigate("about:blank") // INPUT BusyWait(IE)