30.03.2017 Views

Excel_VBA_manual

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

}<br />

rezultat += Elem;<br />

}<br />

*plResult = rezultat;<br />

return 0;<br />

Primjer deklaracije i poziva funkcije Sumapolja iz <strong>VBA</strong>:<br />

Declare Function Sumapolja Lib "primjer" _<br />

(a( ) As Integer, r As Long) As Integer<br />

Sub SumaPoljaTest()<br />

Dim n(5) As Integer<br />

Dim suma As Long<br />

'Vrijednost prvih pet ćelija u <strong>Excel</strong>u spremi u polje<br />

For i = 0 To 4<br />

n(i) = Cells(i+1)<br />

Next<br />

x = SumArray(n, suma) 'Poziv funkcije SumArray<br />

MsgBox x & ":" & suma<br />

End Sub<br />

<strong>VBA</strong> radi minimalnu provjeru tipa i veliĉine polja. Zbog toga je vrlo važno uoĉiti kako je<br />

deklarirana funkcija, jer pozivom DLL-a sa krivim tipom podatka polja, najvjerojatnije će doći do<br />

rušenja aplikacije (<strong>Excel</strong>a).<br />

2.3.5 Poziv funkcije iz <strong>Excel</strong> radne bilježnice<br />

Funkcije iz DLL-a se mogu pozvati i direktno iz radne bilježnice, pomoću funkcije CALL.<br />

Sintaksa CALL naredbe je sljedeća:<br />

CALL(modul_tekst,procedura,tip_tekst,argument1,argument2...)<br />

modul_text je ime DLL-a, koji se mora nalaziti na putanji traženja DLL-a<br />

procedura – ime funkcije u DLL-u,<br />

tip_tekst – tipovi argumenata koje funkcija vraća i koje prima<br />

argument1,argument2... – vrijednosti argumenata koje funkcija prima<br />

U trećem argumentu tip_tekst u CALL funkciji prvo slovo predstavlja tip podatka koji funkcija<br />

vraća, a sljedeća slova predstavljaju redom sve tipove argumenata koje funkcija prima.<br />

30

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!