Category Archives: VBA

VBA-esimerkkejä

Excel-apuohjelma (Add-In)

Kun luodaan omia funktioita joita tarvitaan usein, voi ne tallentaa Excel-apuohjelmiksi (AddIn) jolloin ne ovat käyttöönoton jälkeen aina käytettävissä.

Tallennus Excel-apuohjelmaksi

Tiedoston tallentaminen AddIn (Excel apuohjelma) –tidedostoksi:
Tiedosto, Tallenna nimellä, Tiedostomuoto: Excel-apuohjelma (.xlam).
Valittuasi tiedostomuodon Excel ehdottaa AddIns –kansiota.

Excel-apuohjelman käyttöönotto

Valitse Tiedosto, Asetukset, Apuohjelmat
Valitse Excel-apuohjelmat listaruudusta Hallitse
Napsauta Siirry
Valitse valintaikkunasta Apuohjelmat luomasi apuohjelma.
Napsauta OK

 Oman funktion käyttö

Luomasi funktion saat käyttöön valintanauhan Kaavat Lisää funktio työkalulla.
Luomasi funktion löydät funktioluokasta Käyttäjän määrittämä tai siitä luokasta jonne sen määrittelit.

Huomaa että voit myös luoda omia funktioluokkia tai lisätä funktion johonkin olemassa olevaan funktioluokkaan.

Apuohjelman poisto

Vaikka poistat apuohjelman käytöstä näkyy se edelleen Apuohjelmat valintaikkunassa.
Poista tiedosto siitä kansiosta jonne olet sen tallentanut
Valitse uudestaan apuohjelmat
Valitse poistettu apuohjelma valintaikkunasta
Saat ilmoituksen että ohjelmaa ei löydy ja poistetaanko se listasta
Vastaa Kyllä ja poistettu ohjelma häviää listasta.

Funktion asetukset

Voit antaa luomallesi funktiolle kuvauksen ja muita asetuksia vba:sta käsin menetelmällä:
Application.MacroOptions.
Syntaxi:
expression.MacroOptions(Macro, Description, HasMenu, MenuText, HasShortcutKey, ShortcutKey, Category, StatusBar, HelpContextID, HelpFile, ArgumentDescriptions)

Määrittelemällä Cetegory voit liittää luomasi funktion johonkin olemassa olevaan funktioluokkaan tai luoda oma luokka funktiollesi.

Menetelmän suoritat vain kerran joten voit suorittaa sen vaikka Immediate windows:ta (Ctrl+G)

Esimerkki:
Application.MacroOptions macro:=”Pankkiviitenumero”, Category:= 1,
Description:=”Laskee pankkiviitenumeron annetusta numerosarjasta”, _
ArgumentDescriptions:=Array(“Numero josta viitenumero lasketaan”)

Liittää makron nimeltä Pankkiviitenumero luokkaan 1 joka on rahoitusfunktiot. Description kohta luo selitteen funktiolle ja ArgumentDescriptions taas selitteen argumentille.

Esimerkkejä

Seuraavassa kahdessa esimerkissä käydään läpi kaikki taulut ja ensimmäisesssä suojataan ne ja toisessa puretaan suojaus.

Sub ProTectSh()
‘käy läpi jokaisen taulun ja suojaa sen ilman salasanaa
    Dim ws
    For Each ws In Worksheets
        ws.Protect Password:=””
    Next
    MsgBox “Done”, vbOKOnly, “End of process”
End Sub

 Sub UProTectSh()
‘käy jokaisen taulun läpi ja purkaa sujauksen, ilman salasanaa
    Dim ws
    For Each ws In Worksheets
        ws.Unprotect Password:=””
    Next
    MsgBox “Done”, vbOKOnly, “End of process”
End Sub

Alla oleva esimerkki estsii Excelissä viimesien käytetyn rivin A-sarakkeesta ja kertoo sen MsbBoxissa.
Cells(Rows.Count, 1) ← numero kertoo sarakkeen (1 = A).

Sub FindLastRow()
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox LastRow
End Sub