Innhold

# Bruke Calc-funksjoner i makroer

I tillegg til de opprinnelige BASIC-funksjonene, kan du kalle Calc-funksjoner i makroene og skriptene dine og angi Calc-funksjoner i celleformler.

## Anroper interne Calc-funksjoner i Basic

Bruk CreateUnoService-funksjonen for å få tilgang til com.sun.star.sheet.FunctionAccess-tjenesten.

### Eksempel:

Eksemplet nedenfor oppretter en funksjon kalt MyVlook som anroper VLOOKUP Calc-funksjonen over en datamatrise sendt som argument og returnerer verdien som er funnet av funksjonen.

        Function MyVlook(Lookup, DataArray As Object, Index As Integer, SortedRangeLookup as Byte)
            Dim oService As Object
            Set oService = CreateUnoService("com.sun.star.sheet.FunctionAccess")
            ' Bruk alltid funksjonsnavnet på engelsk
            MyVlook = oService.callFunction("VLOOKUP", Array(Lookup, DataArray, Index, SortedRangeLookup))
        End Function

Makroen nedenfor viser et eksempel på hvordan MyVlook-funksjonen kan kalles. Den oppretter først en 5-av-2 datamatrise og kaller deretter funksjonen MyVlook og viser den returnerte verdien ved hjelp av MsgBox.

        Sub CallingMyVlook()
            ' Oppretter en 5 x 2 matrise og fyller den med data
            Dim myData(1 to 5, 1 to 2) as Variant
            myData(1, 1) = 1 : myData(1, 2) = "Helt uenig"
            myData(2, 1) = 3 : myData(2, 2) = "Uenig"
            myData(3, 1) = 5 : myData(3, 2) = "Usikker"
            myData(4, 1) = 7 : myData(4, 2) = "Enig"
            myData(5, 1) = 9 : myData(5, 2) = "Helt enig"
            ' Slår opp datamatrisen
            Dim result as String
            result = MyVlook(4, myData, 2, 1)
            ' Viser meldingen "Uenig"
            MsgBox result
        End Sub

## Angi celleformler som inneholder interne kalkulasjonsfunksjoner

Bruk formeltekststrengen for å legge til en formel i en regnearkcelle.

Alle Calc-funksjoner må uttrykkes med deres engelske navn.

### Eksempel:

    Sub AssignFormulaToCell
    REM Legg til en formel i celle A1. Funksjonsnavnet må være på engelsk.
        oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
        oCell.Formula = "=SUM(B1:B10)"
    REM-celle A1 viser det lokaliserte funksjonsnavnet
    End Sub

## Anroper Legg inn Calc Funksjoner i BASIC

Calctilleggsfunksjonene er i UNO-tjenestene com.sun.star.sheet.addin.Analysis, com.sun.star.sheet.addin.DateFunctions og com.sun.star.sheet.addin.PricingFunctions.

### Eksempel:

    REM Eksempel som kaller tilleggsfunksjon SQRTPI
    Funksjon MySQRTPI(arg som double) som double
       Dim oService as Object
       oService = CreateUnoService("com.sun.star.sheet.addin.Analysis")
       MySQRTPI = oService.getSqrtPi(arg)
    End Function

## Stille inn celleformler med tilleggsfunksjoner

Tilleggsfunksjonen må uttrykkes med UNO-tjenestenavnet.

### Eksempel:

    Sub AssignAddInFormulaToCell
    REM Legg til en tilleggsformel i celle A1. Funksjonsnavn er UNO-tjenestenavnet.
        oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
        oCell.Formula = "=com.sun.star.sheet.addin.Analysis.getBin2Dec(B1)"
    REM-celle A1 viser det lokaliserte funksjonsnavnet
    End Sub

## UNO-tjenestenavn for analysetilleggsfunksjoner

Tabellen nedenfor viser en liste over alle Calc Analysis Add-In-funksjoner og deres respektive UNO-tjenestenavn.

Calc Funksjonsnavn | UNO tjenestenavn
--- | ---
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

## UNO-tjenestenavn for datotilleggsfunksjoner

Tabellen nedenfor viser en liste over alle Calc Date Add-In-funksjoner og deres respektive UNO-tjenestenavn.

Calc Funksjonsnavn | UNO tjenestenavn
--- | ---
DAYSINMONTH | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth
DAYSINYEAR | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth
MONTHS | com.sun.star.sheet.addin.DateFunctions.getDiffMonths
WEEKS | com.sun.star.sheet.addin.DateFunctions.getDiffWeeks
YEARS | com.sun.star.sheet.addin.DateFunctions.getDiffYears
ROT13 | com.sun.star.sheet.addin.DateFunctions.getRot13
WEEKSINYEAR | com.sun.star.sheet.addin.DateFunctions.getWeeksInYear

## UNO-tjenestenavn for pristilleggsfunksjoner

Tabellen nedenfor viser en liste over alle tilleggsfunksjoner for Calc Pricing og deres respektive UNO-tjenestenavn.

Calc Funksjonsnavn | UNO tjenestenavn
--- | ---
OPT_BARRIER | com.sun.star.sheet.addin.PrincingFunctions.getOptBarrier
OPT_PROB_HIT | com.sun.star.sheet.addin.PrincingFunctions.getOptProbHit
OPT_PROB_INMONEY | com.sun.star.sheet.addin.PrincingFunctions.getOptProbInMoney
OPT_TOUCH | com.sun.star.sheet.addin.PrincingFunctions.getOptTouch

Lignende emner

CreateUnoService-funksjonen