excel vba - How to access different menus and tabs in webpage? -
excel vba - How to access different menus and tabs in webpage? -
i new vba.
i have open webpage in ie. webpage has menu on left side , in each menu there different tabs.
i have check these menus & tabs up. along have check errors on these pages (displayed if any).
i have been able write code open webpage.
here bit of code wrote months ago. retrieves html dom of webpage , tries find elements/ids/classes within dom , returns either text or html.
maybe can utilize find menus/tabs , check if content corret. furthermore htmldocument/ihtmlelement classes of vba useful you.
as note: requires microsoft net controls , microsoft html object library references.
public function getwebpage(url string, optional resulttype string = "innertext", optional selector variant) variant dim obrowser internetexplorer dim htmldoc htmldocument dim doctext string dim arrselector variant dim element ihtmlelement dim long dim tmpelementname string dim timer long const waittime = 12000 '// set browser object new ie instance set obrowser = new internetexplorer obrowser.silent = true obrowser.visible = false obrowser.navigate url '// navigate given page '// wait until page loaded, requires sleep api of windows timer = 0 timer = timer + 1 sleep 10 loop until obrowser.readystate = readystate_complete or timer > waittime '// if page loaded if obrowser.readystate = readystate_complete set htmldoc = obrowser.document '// retrieve document '// if selector given if not ismissing(selector) '// temporary element name, assumes selector contains '#' or '.' '// represent id or class tmpelementname = mid(selector, 2) '// check if it's id, class or simple element , retrieve if left(selector, 1) = "#" set element = htmldoc.getelementbyid(tmpelementname) elseif left(selector, 1) = "." set element = htmldoc.getelementsbyclassname(tmpelementname) else set element = htmldoc.body end if else set element = htmldoc.body end if '// either inner text or html, depending on selection if not element nil if resulttype = "innertext" doctext = element.innertext elseif resulttype = "innerhtml" doctext = element.innerhtml end if end if '// clean , homecoming set element = nil htmldoc.close set htmldoc = nil getwebpage = iif(doctext = "", null, doctext) else getwebpage = null end if obrowser.quit set obrowser = nil end function excel-vba
Comments
Post a Comment