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 />

// variant je nešto drugo<br />

return -3;<br />

U <strong>VBA</strong> kodu deklarirana je i kasnije pozvana VariantPrimjer funkcija:<br />

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

(ByVal v As Variant) As Integer<br />

Sub VariantTest()<br />

MsgBox VariantPrimjer (Worksheets(1))<br />

MsgBox VariantPrimjer ("25")<br />

MsgBox VariantPrimjer (5)<br />

MsgBox VariantPrimjer (3.2)<br />

End Sub<br />

'-1 (objekt)<br />

'25 (vrijednost)<br />

'5 (vrijednost)<br />

'-3 (nešto drugo)<br />

Oznake variant konstanti za odreĊeni Variant tip argumenta koje podržava <strong>VBA</strong> kod.<br />

Boolean<br />

VT_BOOL<br />

Currency(scaled integer) VT_CY<br />

Date<br />

VT_DATE<br />

Double(double floating-point) VT_R8<br />

Integer<br />

VT_I2<br />

Long Integer<br />

VT_I4<br />

Object<br />

VT_DISPATCH<br />

Single(floating-point) VT_R4<br />

String<br />

VT_BSTR<br />

2.3.4.4 Korištenje tipa String<br />

Kada <strong>VBA</strong> predaje string po referenci u DLL, tada upotrebljava poseban OLE tip podataka<br />

nazvan BSTR. U većini sluĉajeva BSTR se može tretirati kao pokazivaĉ na string koji završava s<br />

nul - bajtom (\0).<br />

Funkcija u C-u treba deklarirati argument kao pokazivaĉ na BSTR. Pokazivaĉ neće nikada biti<br />

NULL. Ako <strong>VBA</strong> stringu nije ništa pridruženo, BSTR na koji pokazuje pokazivaĉ će biti nula.<br />

Ako je pridružen prazan string, prvi karakter će biti 0 i dužina stringa će biti 0.<br />

short WINAPI STip(BSTR *pbstr)<br />

{ if (pbstr == NULL) // pokazivač je nula, neće se dogoditi<br />

return 1;<br />

if (*pbstr == NULL)<br />

// string je alociran u VB sa Dim naredbom,ali mu<br />

return 2;<br />

//još nije pridružena vrijednost<br />

if (*pbstr[0] == 0) // string je alociran i pridružen mu je prazan string (" ")<br />

return 3;<br />

return 4;<br />

// string ima vrijednost<br />

}<br />

27

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

Saved successfully!

Ooh no, something went wrong!