Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi

Ustvarimo lastno funkcijo

  Excel ima že vgrajenih ogromno uporabnih funkcij, a včasih potrebujemo bolj kompleksno oziroma prilagojeno našim potrebam. S programskim jezikom VBA bomo tako napisali lastno funkcijo.
 
 
1
 
 

Odprimo Excel. Od Excela želimo, da nam v celico A1 izpiše prvih 10 večkratnikov števila 7.

Takšne funkcije Excel ne pozna, zato jo bomo ustvarili sami.

Kliknite tipki Alt + F11, da odprete Visual Basic for Applications.

 
 
2
 
 

Zgoraj kliknite na majhno črno puščico in nato na Module

 
 
3
 
 

Odprlo se nam je prazno okno za vpis programske kode. Začeli bomo na začetku. Vpišite 

 
Function IzpisiVeckratnike (stevilo As Integer, Optional steviloVeckratnikov As Integer = 5) As String
 
Tej naši funkciji bo, kot vidite, ime IzpisiVeckratnike. Prvi argument je obvezen in tukaj bomo kasneje lahko vpisali, večkratnike katerega števila želimo. Drugi argument - steviloVeckratnikov - ne bo obvezen, saj bo kot privzeto določeno, naj Excel izpiše 5 večkratnikov.
 
 
4
 
 

Pritisnite Enter in samodejno se vam bo vstavilo End Function. To označuje konec funkcije. Sedaj vmes zapišite

 
    Dim i As Integer
    Dim rezultat As String
 
S tem bomo rezervirali dve spremenljivki, prva bo uporabljena za računanje, v drugo pa bomo shranjevali vse večkratnike.
 
 
 
 
 
5
 
 

Na vrsti je glavni del kode - For zanka, ki se bo ponovila tolikokrat, kolikor večratnikov želimo. Hkrati bo računala večkratnike in jih shranjevala v spremenljivko rezultat

 
    For i = 1 To steviloVeckratnikov
        rezultat = rezultat & stevilo * i & ", "
    Next
 
 
6
 
 

Ko program poišče vse večkratnike, mora odstraniti še odvečno vejico, ki se pojavi na koncu.

 
    rezultat = Left(rezultat, Len(rezultat) - 2)
 
Za konec pa mora vse večkratnike še poslati Excelu kot rezultat celotne funkcije.
 
    IzpisiVeckratnike = rezultat
 
 
7
 
 

Za vse, ki vam ni uspelo slediti, tukaj je celotna koda:

 
Function IzpisiVeckratnike(stevilo As Integer, Optional steviloVeckratnikov As Integer = 5) As String
    Dim i As Integer
    Dim rezultat As String
    
    For i = 1 To steviloVeckratnikov
        rezultat = rezultat & stevilo * i & ", "
    Next
    
    rezultat = Left(rezultat, Len(rezultat) - 2)
    IzpisiVeckratnike = rezultat
End Function
 
Funkcijo moramo sedaj tudi preizkusiti. Zaprite okno Visual Basica in se postavite v poljubno celico na listu.
 
 
 
8
 
 

To formulo lahko sedaj uporabimo kot vsako drugo. Vnesite torej naslednje:

 
=IzpisiVeckratnike(7;10)
 
Pritisnite Enter.
 
 
9
 
 

Program vam je izpisal prvih deset večkratnikov števila 7, ločenih z vejico :)

 
 
10
 
 

Formulo lahko uporabite tudi v povezavi z drugimi celicami.

Ustvarite tabelo, kot na sliki.

 
 
11
 
 

Sedaj v celico, levo od števila 1, vnesite formulo

 
=IzpisiVeckratnike(A1;10)
 
 
 
12
 
 

Pritisnite Enter, označite to celico, klknite na majhen, črn kvadratek levo spodaj in funkcijo prenesite še na ostale celice.

 
 
13
 
 

Program vam je za vsako število izpisal njegovih prvih deset večkratnikov.

 
 
14
 
 

Pripravil sem še eno funkcijo, ki poišče vse delitelje nekega števila:

 
Function IzpisiDelitelje(stevilo As Integer) As String
    Dim i As Integer
    Dim rezultat As String
    
    For i = 1 To stevilo
        If stevilo Mod i = 0 Then
            rezultat = rezultat & i & ", "
        End If
    Next
    
    rezultat = Left(rezultat, Len(rezultat) - 2)
    IzpisiDelitelje = rezultat
End Function
 
 
15
 
 

To sta bili samo dve enostavni funkciji za prikaz delovanja.

S pomočjo programskega jezika VBA si lahko delo v Office programih močno olajšamo in pohitrimo.

 
 
Komentiraj
 
 
 
 
 
15.7.2011, 0:37
Nice, čim več tega.
Excel je ful kompleksna zadeva in ga je fajn vsaj malo znat.
Jaz potrebujem predvsem za razporejanje meritev, recimo ko ti program (logger) izmeri neke meritve ti jih nameče v tabelo, pol pa moraš vsakega 8 vzet pa ga dat v posebej stoplec, in tudi vse ostale vsakega v svoj stolpec.
Take in podobne stvari (:

lepa lekcija, lpš
 
 
 
 
15.7.2011, 9:20
Večkratniki in delitelji... puhh sem srečen, da sem se tega rešil!
 
 
 
 
15.7.2011, 9:41
sunka, Excel je zelo zmogljiva zadeva, se strinjam. Bom poskusil še kaj na tvojo temo narediti ...
 
 
 
 
12.1.2015, 14:36
Živjo, a mi lahko kdo pomaga?

Delam urnik in namesto, da bo napisano koliko ur nekdo dela, bo po izmenah (se pravi, dop, pop, cel dan,...).

In zdaj nastane problem, kako naj naredim formulo, kaj sešteti? (npr. Marko dela en teden dopoldan, drug popopldan, itd.). To je vse v eni vrstici in narejeno s spustnim seznamom...

Imam pa na posebnem listu napisan urnik in še od kdaj do kdaj pač traja izmena (npr., dop od 9-17, pop od 12-20)...

hvala za pomoč

[Popravljena slovnica!! podtalje]


spremenjeno: podtalje (12.1.2015, 19:38)
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!