Skip to the content

De functietoets F1 en zoeken binnen Google met Excel VBA.

Als je in Excel een formule aan wilt passen dan kan dat op verschillende manieren. Mijn manier is het gebruik van de F2 toets, maar met dikke vingers heb je al snel de F1 toets te pakken.

De F1 toets opent het scherm met help informatie over Excel en dat is waar dit blog over gaat. Ik wil eigenlijk niet de Office Excel informatie maar wil de formule zoeken in Google met als reden dat ik direct kan putten uit een enorme bron van gebruikerservaringen.

Hiervoor heb ik 2 verschillende stukjes code nodig die ik in de VBA editor moet gaan verwerken. Klik op ALT+F11 om de VBA editor te openen en voeg een nieuwe module toe.

Reinder.eu | VBA module toevoegen

 

Plak vervolgens onderstaande code in deze nieuwe module.

Option Explicit

Sub GoogleSearchIE()

    'Declareer de variabelen
    
    Dim oItem As String, oIE As Object
    
    'De variabele oItem bevat de formule uit de active cel
    
    oItem = ActiveCell.Formula
    
    'Declareer de variabele oIE als internet explorer
    
    Set oIE = CreateObject("InternetExplorer.application")
    
    'En zoeken
    
    oIE.Navigate "http://www.google.com.au/search?hl=en&q=" & oItem & " Excel&meta="
    
    oIE.Visible = True

End Sub

 

In het object ThisWorkbook plak je vervolgens de onderstaande code waarin we aan dit Excel document uitleggen dat we na het klikken op de toets F1 de macro GoogleSearchIE uit willen voeren.

Sub SearchOnF1()

    Application.OnKey "{F1}", "GoogleSearchIE"

End Sub

 

Tot slot voegen we een functie toe aan ThisWorkbook die de macro activeert bij het opstarten van het document.

Sub Workbook_Open()

    SearchOnF1

End Sub

Sla je Excel document op als Excel-werkmap met macro’s, waarna de F1 toets een nieuwe functie heeft gekregen bij de volgende keer dat je het document opent. Sluit het document dus nu eerst af en open het opnieuw.

Openen met je standaard browser

In bovenstaande blog maak ik gebruik van Internet Explorer. Uiteraard zijn er meer wegen die naar Rome leiden en zo heb ik hieronder de variant beschreven die gebruik maakt van de standaard browser.

Bij deze variant dien je echter wel de juiste variant van de ShellExecute te gebruiken in geval van 32 en 64 Bits

Option Explicit

'64 Bit functie

Private Declare PtrSafe Function ShellExecute _
Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal Operation As String, _
ByVal Filename As String, _
Optional ByVal Parameters As String, _
Optional ByVal Directory As String, _
Optional ByVal WindowStyle As String = vbMinimizedFocus _
) As Long

'32 Bit functie

'Private Declare Function ShellExecute

' Lib "shell32.dll" Alias "ShellExecuteA" ( _

' ByVal hWnd As Long, _

' ByVal Operation As String, _

' ByVal Filename As String, _

' Optional ByVal Parameters As String, _

' Optional ByVal Directory As String, _

' Optional ByVal WindowStyle As Long = vbMinimizedFocus _

' ) As Long

Sub GoogleSearchIE()

    'Declareer de variabelen
    
    Dim oItem As String
    
    'De variabele oItem bevat de formule uit de active cel
    
    oItem = ActiveCell.Formula
    
    Dim lSuccess As Long
    
    'En zoeken
    
    lSuccess = ShellExecute(0, "Open", "http://www.google.com.au/search?hl=en&q=" & oItem & " Excel&meta=")

End Sub

Openen met AHK (Auto Hotkey)

Tot slot is er nog een andere optie om de formule op te zoeken zonder gebruik te maken van VBA voor Excel. Zelf maak ik veelvuldig gebruik van AHK (Auto Hotkey), een klein programma waarmee je je eigen sneltoetsen kunt programmeren om bijvoorbeeld vanuit een Boekhoudsysteem een waarde op te zoeken in een Excel KPI overzicht.

Met onderstaande code geef je AHK de opdracht om de formule uit de actieve cel te kopiëren, je browser te openen en de formule als zoekopdracht in je adresbalk te plakken.

Hiermee tackel je niet alleen het probleem dat de code uit de bovenstaande blogs in je VBA moeten worden geplakt maar ook dat er wordt gezocht in je standaard browser en zoekmachine.

Let er wel op dat je de regel Send #1 vervangt. Bij mij staat Firefox op positie 1 in de taakbalk. Als dit icoontje op de derde positie staat dan dien je deze waarde te vervangen voor #3

F1::

xlApp := ComObjActive(Excel.Application)

value := Excel  xlApp.ActiveCell.Formula

Send #1

Sleep 50

Send ^k

Send %value%

Send {Enter}

Return