Περιεχόμενα
Δείκτης 🔎︎

# Χρήση συναρτήσεων Calc σε μακροεντολές

Εκτός από τις εγγενείς συναρτήσεις BASIC, μπορείτε να καλέσετε συναρτήσεις Calc στις μακροεντολές και τα σενάρια σας και να ορίσετε συναρτήσεις Calc σε τύπους κελιών.

## Κλήση εσωτερικών συναρτήσεων Calc στη Basic

Χρησιμοποιήστε τη συνάρτηση CreateUNOService για να προσπελάσετε την υπηρεσία com.sun.star.sheet.FunctionAccess.

### Παράδειγμα:

Το παρακάτω παράδειγμα δημιουργεί μια συνάρτηση με το όνομα MyVlook που καλεί τη συνάρτηση VLOOKUP Calc πάνω από έναν πίνακα δεδομένων που μεταβιβάζεται ως όρισμα και επιστρέφει την τιμή που βρέθηκε από τη συνάρτηση.

        Function MyVlook(Lookup, DataArray As Object, Index As Integer, SortedRangeLookup as Byte)
            Dim oService As Object
            Set oService = createUnoService("com.sun.star.sheet.FunctionAccess")
            ' Χρησιμοποιείτε πάντα το όνομα της συνάρτησης στα Αγγλικά
            MyVlook = oService.callFunction("VLOOKUP", Array(Lookup, DataArray, Index, SortedRangeLookup))
        End Function

Η παρακάτω μακροεντολή παρουσιάζει ένα παράδειγμα για το πώς μπορεί να κληθεί η συνάρτηση MyVlook. Εάν πρώτα δημιουργηθεί ένας πίνακας δεδομένων 5-επί-2 και, στη συνέχεια, κληθεί η συνάρτηση MyVlook θα εμφανιστεί η επιστρεφόμενη τιμή χρησιμοποιώντας το MsgBox.

        Sub CallingMyVlook()
            ' Δημιουργεί έναν πίνακα 5 επί 2 και τον γεμίζει με δεδομένα
            Dim myData(1 to 5, 1 to 2) as Variant
            myData(1, 1) = 1 : myData(1, 2) = "Διαφωνώ έντονα"
            myData(2, 1) = 3 : myData(2, 2) = "Διαφωνώ"
            myData(3, 1) = 5 : myData(3, 2) = "Αναποφάσιστο"
            myData(4, 1) = 7 : myData(4, 2) = "Συμφωνώ"
            myData(5, 1) = 9 : myData(5, 2) = "Συμφωνώ πολύ"
            ' Αναζητά τον πίνακα δεδομένων
            Dim result as String
            result = MyVlook(4, myData, 2, 1)
            ' Εμφανίζει το μήνυμα "Διαφωνώ"
            MsgBox result
        End Sub

## Ρύθμιση τύπων κελιών που περιέχουν εσωτερικές συναρτήσεις Calc

Χρησιμοποιήστε τη συμβολοσειρά κειμένου τύπου για να προσθέσετε έναν τύπο σε ένα κελί υπολογιστικού φύλλου.

Όλες οι συναρτήσεις Calc πρέπει να εκφράζονται με τα αγγλικά τους ονόματα.

### Παράδειγμα:

    Sub AssignFormulaToCell
    REM Προσθέστε έναν τύπο στο κελί A1. Το όνομα της συνάρτησης πρέπει να είναι στα αγγλικά.
        oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
        oCell.Formula = "=SUM(B1:B10)"
    REM Το κελί A1 εμφανίζει το τοπικό όνομα της συνάρτησης
    End Sub

## Κλήση πρόσθετων συναρτήσεων Calc στη BASIC

Οι πρόσθετες συναρτήσεις Calc είναι στην υπηρεσία com.sun.star.sheet.addin.Analysis.

### Παράδειγμα:

    REM Παράδειγμα κλήσης πρόσθετης λειτουργίας SQRTPI
    Η συνάρτηση MySQRTPI(arg as double) ως διπλής
       Dim oService as Object
       oService = createUNOService("com.sun.star.sheet.addin.Analysis")
       MySQRTPI = oService.getSqrtPi(arg)
    End Function

## Ρύθμιση τύπων κελιών με πρόσθετες συναρτήσεις

Η πρόσθετη συνάρτηση (Add-In) πρέπει να εκφράζεται με το όνομα της υπηρεσίας UNO.

### Παράδειγμα:

    Sub AssignAddInFormulaToCell
    REM Προσθέστε έναν τύπο πρόσθετου στο κελί A1. Το όνομα της συνάρτησης είναι το όνομα υπηρεσίας UNO.
        oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
        oCell.Formula = "=com.sun.star.sheet.addin.Analysis.getBin2Dec(B1)"
    REM Το κελί A1 εμφανίζει το τοπικό όνομα της συνάρτησης
    End Sub

## Ονόματα υπηρεσιών UNO πρόσθετων (Add-In) συναρτήσεων

Ο παρακάτω πίνακας παρουσιάζει έναν κατάλογο με όλες τις συναρτήσεις πρόσθετων Calc και τα αντίστοιχα ονόματα υπηρεσιών UNO.

Calc Function name | UNO service name
ACCRINT | com.sun.star.sheet.addin.Analysis.getAccrint
ACCRINTM | com.sun.star.sheet.addin.Analysis.getAccrintm
AMORDEGRC | com.sun.star.sheet.addin.Analysis.getAmordegrc
AMORLINC | com.sun.star.sheet.addin.Analysis.getAmorlinc
BESSELI | com.sun.star.sheet.addin.Analysis.getBesseli
BESSELJ | com.sun.star.sheet.addin.Analysis.getBesselj
BESSELK | com.sun.star.sheet.addin.Analysis.getBesselk
BESSELY | com.sun.star.sheet.addin.Analysis.getBessely
BIN2DEC | com.sun.star.sheet.addin.Analysis.getBin2Dec
BIN2HEX | com.sun.star.sheet.addin.Analysis.getBin2Hex
BIN2OCT | com.sun.star.sheet.addin.Analysis.getBin2Oct
COMPLEX | com.sun.star.sheet.addin.Analysis.getComplex
CONVERT | com.sun.star.sheet.addin.Analysis.getConvert
COUPDAYBS | com.sun.star.sheet.addin.Analysis.getCoupdaybs
COUPDAYS | com.sun.star.sheet.addin.Analysis.getCoupdays
COUPDAYSNC | com.sun.star.sheet.addin.Analysis.getCoupdaysnc
COUPNCD | com.sun.star.sheet.addin.Analysis.getCoupncd
COUPNUM | com.sun.star.sheet.addin.Analysis.getCoupnum
COUPPCD | com.sun.star.sheet.addin.Analysis.getCouppcd
CUMIPMT | com.sun.star.sheet.addin.Analysis.getCumipmt
CUMPRINC | com.sun.star.sheet.addin.Analysis.getCumprinc
DEC2BIN | com.sun.star.sheet.addin.Analysis.getDec2Bin
DEC2HEX | com.sun.star.sheet.addin.Analysis.getDec2Hex
DEC2OCT | com.sun.star.sheet.addin.Analysis.getDec2Oct
DELTA | com.sun.star.sheet.addin.Analysis.getDelta
DISC | com.sun.star.sheet.addin.Analysis.getDisc
DOLLARDE | com.sun.star.sheet.addin.Analysis.getDollarde
DOLLARFR | com.sun.star.sheet.addin.Analysis.getDollarfr
DURATION | com.sun.star.sheet.addin.Analysis.getDuration
EDATE | com.sun.star.sheet.addin.Analysis.getEdate
EFFECT | com.sun.star.sheet.addin.Analysis.getEffect
EOMONTH | com.sun.star.sheet.addin.Analysis.getEomonth
ERF | com.sun.star.sheet.addin.Analysis.getErf
ERFC | com.sun.star.sheet.addin.Analysis.getErfc
FACTDOUBLE | com.sun.star.sheet.addin.Analysis.getFactdouble
FVSCHEDULE | com.sun.star.sheet.addin.Analysis.getFvschedule
GCD | com.sun.star.sheet.addin.Analysis.getGcd
GESTEP | com.sun.star.sheet.addin.Analysis.getGestep
HEX2BIN | com.sun.star.sheet.addin.Analysis.getHex2Bin
HEX2DEC | com.sun.star.sheet.addin.Analysis.getHex2Dec
HEX2OCT | com.sun.star.sheet.addin.Analysis.getHex2Oct
IMABS | com.sun.star.sheet.addin.Analysis.getImabs
IMAGINARY | com.sun.star.sheet.addin.Analysis.getImaginary
IMARGUMENT | com.sun.star.sheet.addin.Analysis.getImargument
IMCONJUGATE | com.sun.star.sheet.addin.Analysis.getImconjugate
IMCOS | com.sun.star.sheet.addin.Analysis.getImcos
IMCOSH | com.sun.star.sheet.addin.Analysis.getImcosh
IMCOT | com.sun.star.sheet.addin.Analysis.getImcot
IMCSC | com.sun.star.sheet.addin.Analysis.getImcsc
IMCSCH | com.sun.star.sheet.addin.Analysis.getImcsch
IMDIV | com.sun.star.sheet.addin.Analysis.getImdiv
IMEXP | com.sun.star.sheet.addin.Analysis.getImexp
IMLN | com.sun.star.sheet.addin.Analysis.getImln
IMLOG10 | com.sun.star.sheet.addin.Analysis.getImlog10
IMLOG2 | com.sun.star.sheet.addin.Analysis.getImlog2
IMPOWER | com.sun.star.sheet.addin.Analysis.getImpower
IMPRODUCT | com.sun.star.sheet.addin.Analysis.getImproduct
IMREAL | com.sun.star.sheet.addin.Analysis.getImreal
IMSEC | com.sun.star.sheet.addin.Analysis.getImsec
IMSECH | com.sun.star.sheet.addin.Analysis.getImsech
IMSIN | com.sun.star.sheet.addin.Analysis.getImsin
IMSINH | com.sun.star.sheet.addin.Analysis.getImsinh
IMSQRT | com.sun.star.sheet.addin.Analysis.getImsqrt
IMSUB | com.sun.star.sheet.addin.Analysis.getImsub
IMSUM | com.sun.star.sheet.addin.Analysis.getImsum
IMTAN | com.sun.star.sheet.addin.Analysis.getImtan
INTRATE | com.sun.star.sheet.addin.Analysis.getIntrate
ISEVEN | com.sun.star.sheet.addin.Analysis.getIseven
ISODD | com.sun.star.sheet.addin.Analysis.getIsodd
LCM | com.sun.star.sheet.addin.Analysis.getLcm
MDURATION | com.sun.star.sheet.addin.Analysis.getMduration
MROUND | com.sun.star.sheet.addin.Analysis.getMround
MULTINOMIAL | com.sun.star.sheet.addin.Analysis.getMultinomial
NETWORKDAYS | com.sun.star.sheet.addin.Analysis.getNetworkdays
NOMINAL | com.sun.star.sheet.addin.Analysis.getNominal
OCT2BIN | com.sun.star.sheet.addin.Analysis.getOct2Bin
OCT2DEC | com.sun.star.sheet.addin.Analysis.getOct2Dec
OCT2HEX | com.sun.star.sheet.addin.Analysis.getOct2Hex
ODDFPRICE | com.sun.star.sheet.addin.Analysis.getOddfprice
ODDFYIELD | com.sun.star.sheet.addin.Analysis.getOddfyield
ODDLPRICE | com.sun.star.sheet.addin.Analysis.getOddlprice
ODDLYIELD | com.sun.star.sheet.addin.Analysis.getOddlyield
PRICE | com.sun.star.sheet.addin.Analysis.getPrice
PRICEDISC | com.sun.star.sheet.addin.Analysis.getPricedisc
PRICEMAT | com.sun.star.sheet.addin.Analysis.getPricemat
QUOTIENT | com.sun.star.sheet.addin.Analysis.getQuotient
RANDBETWEEN | com.sun.star.sheet.addin.Analysis.getRandbetween
RECEIVED | com.sun.star.sheet.addin.Analysis.getReceived
SERIESSUM | com.sun.star.sheet.addin.Analysis.getSeriessum
SQRTPI | com.sun.star.sheet.addin.Analysis.getSqrtpi
TBILLEQ | com.sun.star.sheet.addin.Analysis.getTbilleq
TBILLPRICE | com.sun.star.sheet.addin.Analysis.getTbillprice
TBILLYIELD | com.sun.star.sheet.addin.Analysis.getTbillyield
WEEKNUM | com.sun.star.sheet.addin.Analysis.getWeeknum
WORKDAY | com.sun.star.sheet.addin.Analysis.getWorkday
XIRR | com.sun.star.sheet.addin.Analysis.getXirr
XNPV | com.sun.star.sheet.addin.Analysis.getXnpv
YEARFRAC | com.sun.star.sheet.addin.Analysis.getYearfrac
YIELD | com.sun.star.sheet.addin.Analysis.getYield
YIELDDISC | com.sun.star.sheet.addin.Analysis.getYielddisc
YIELDMAT | com.sun.star.sheet.addin.Analysis.getYieldmat

Σχετικά θέματα

Συνάρτηση CreateUnoService