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.
Primjer <strong>VBA</strong> koda koji deklarira i poziva STip funkciju:<br />
Declare Function STip Lib "primjer" _<br />
(s As String) As Integer<br />
Sub STipTest()<br />
Dim s As String<br />
MsgBox STip(s) 'ispisuje 2<br />
s = ""<br />
MsgBox STip(s) ' ispisuje 3<br />
s = "primjer"<br />
MsgBox STip(s) ' ispisuje 4<br />
End Sub<br />
2.3.4.5 Korištenje korisnički definiranih struktura<br />
Naredba Type koristi se u <strong>VBA</strong> kodu za kreiranje korisniĉki definiranih struktura. Na primjer,<br />
sljedeći <strong>VBA</strong> tip podatka i struktura u C-u su identiĉni.<br />
U <strong>VBA</strong>:<br />
Type ARG<br />
i As Integer<br />
str As String<br />
End Type<br />
U C-u:<br />
typedef struct {<br />
short i;<br />
BSTR bstr;<br />
} ARG;<br />
Korisniĉki tipovi podataka na smiju biti predani po vrijednosti, nego po referenci. Primjer<br />
funkcije u C-u koja deklarira argument kao pokazivaĉ na strukturu:<br />
short WINAPI ArgStruktura(ARG *parg, char *szArg)<br />
{ BSTR bstr;<br />
if (parg == NULL)<br />
return -1;<br />
if ((bstr = SysAllocString((BSTR)szArg)) == NULL)<br />
return -1;<br />
// alocira lokalni string<br />
if (parg->bstr != NULL) // stringu je već pridružena vrijednost<br />
SysFreeString(parg->bstr);<br />
parg->i = SysStringByteLen(bstr); //dužina stringa<br />
parg->bstr = bstr;<br />
return parg->i;<br />
}<br />
28