Bármilyen Exceles Dashboardot vagy űrlapot készítünk, mindig nagyon jól mutat, ha valamilyen extrával meg tudjuk bolondítani, de akár akkor is jól jöhet a most bemutatásra kerülő kis extra, ha csökkenteni akarjuk a felhasználók elcsavargási idejét a táblázatkezelőtől. Ilyenkor jól jöhet, ha tudjuk, hogyan lehet Excelből böngészőt indítani és ott alapvető kommunikációt végrehajtani - az indítás egyébként nem annyira komplikált dolog, Internet Explorer esetében a kétirányú kommunikációval sincs baj, Chrome vagy Firefox esetén viszont ha vissza is akarunk tölteni adatot Excelbe, akkor már annyira nincs könnyű dolgunk (de kommentben jöhetnek az észrevételek). Mindenesetre ma azért ennyire még nem rohanunk előre, szimplán elindítjuk és egy egyszerű műveletet végrehajtunk Chrome-ban.
Készítünk valamilyen kis designt az általunk kitalált célra, én most egy egyszerű Google-keresést fogok imitálni és indítani Excelből:
A keresési szöveghez a mező egy Text Box, a gomb pedig szimplán egy Command Button, mindkettőt a Developer ribbonfül Controls szekciójának Insert menüjével szúrtam be.
Ehhez fogjuk majd hozzárendelni azt a rövid kis makrót, amit összeállítunk a VBA-editorban. A hozzárendelés roppant egyszerű, jobb gombbal kattintunk a Keresés feliratot viselő gombunkon, majd Assign macro:
A kódhoz Alt+F11 lenyomásával átmegyünk a VBA-editorba, majd definiálunk két változót, az egyiket chromedir néven a Google Chrome elérési útvonalára, illetve kereses néven egy másikat, a Text Boxunk értékének kinyeréséhez.
Sub kereses()
Dim chromedir As String
Dim kereses As String
Most szépen töltsük fel a két változónkat, a chromedir névre hallgatóba azt az elérési útvonalat tegyük, ahol a C meghajtónkon a "chrome.exe" található, a kereses névre hallgató változó pedig legyen egyenlő az adott sheetünkön található TextBox1 értékével:
chromedir = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
kereses = Worksheets("Sheet1").TextBox1.Value
Annak érdekében, hogy a keresés szóközzel elválasztott szövegek esetén is működjön, a szóközöket a Replace parancs segítségével cseréljük le + jelre:
kereses = Replace(kereses, " ", "+")
Majd ezután jön a miniprogram lelke, a Shell funkció, amely alapjáraton a paramétereként feltüntetett programot futtatja le, jelen esetünkben ez a Google Chrome lesz - paraméterként pedig értelemszerűen az url-t fogjuk felhasználni, méghozzá az előbb definiált kereses valtozó segítségével:
Shell (chromedir & " -url http://google.com" & "/search" & "?" & "q=" & kereses)
És meg is vagyunk a kóddal:
És mehet is szépen a keresés (persze értelemszerűen itt még nem az Excel fogja megjeleníteni az eredményt, hanem megnyitja a böngészőt):
Internet Explorer esetén kicsit egyszerűbb a dolgunk, ott értelemszerűen az InternetExplorer.application objektumot kell létrehoznunk (hasonlóan mondjuk az Outlookos levélküldés objektumos kezeléséhez), majd ennek paramétereivel/metódusaival tudunk játszadozni. Ez egy egyszerű példa:
Sub ietranslatevba()
Dim ie As Object
Dim bemeneti_nyelv As String, kimeneti_nyelv As String, szoveg As String
Set ie = CreateObject("InternetExplorer.application")
bemeneti_nyelv = "auto"
kimeneti_nyelv = "en"
szoveg = "Jó napot kívánok!"
ie.Visible = True
ie.navigate "http://translate.google.com/#" & bemeneti_nyelv & "/" & kimeneti_nyelv & "/" & szoveg
End Sub
És Internet Explorer esetén ráadásul a visszaadott eredményt jóval egyszerűbben be tudjuk rántani egy cellába, míg Chrome esetén extra libraryt, extra fejlesztést kell hozzáadnunk.