Innhald

# Bruka Calc-funksjonar i makroar

I tillegg til dei opphavlege BASIC-funksjonane kan du kalla opp Calc-funksjonar i makroar og skript og setja Calc-funksjonar i celleformlar.

## Oppkall av interne Calc-funksjonar i Basic

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

### Eksempel:

Eksempelet nedanfor lagar ein funksjon med namnet MyVlook som kallar opp Calc-funksjonen VLOOKUP (FINN.RAD) via ei datamatrise sendt som argument og returnerer verdien funne 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 engelske funsjonsnamn
            MyVlook = oService.callFunction("VLOOKUP", Array(Lookup, DataArray, Index, SortedRangeLookup))
        End Function

Makroen nedanfor viser eit eksempel på korleis funksjonen MyVlook kan kallast opp. Først lagar han ei 5 × 2 datamatrise og kallar så opp funksjonen MyVlook og viser den returnerte verdien ved hjelp av MsgBox.

        Sub CallingMyVlook()
            ' Lagar ei 5 × 2 matrise og fyller ho med data
            Dim myData(1 to 5, 1 to 2) as Variant
            myData(1, 1) = 1 : myData(1, 2) = "Er sterkt usamd"
            myData(2, 1) = 3 : myData(2, 2) = "Er samd"
            myData(3, 1) = 5 : myData(3, 2) = "Uavklart"
            myData(4, 1) = 7 : myData(4, 2) = "Er samd"
            myData(5, 1) = 9 : myData(5, 2) = "Er svært samd"
            ' Slår opp i datamatrisa
            Dim result as String
            result = MyVlook(4, myData, 2, 1)
            ' Viser meldinga "Er usamd"
            MsgBox result
        End Sub

## Setja opp celleformlar som inneheld interne Calc-funksjonar

Bruk formeltekststrengen til å leggja til ein formel i ei reknearkcelle.

Alle Calc-funksjonane må skrivast med dei engelske namna.

### Eksempel:

    Sub AssignFormulaToCell
    REM Legg til ein formel til cella A1. Funksjonsnamna må vera på engelsk.
        oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
        oCell.Formula = "=SUM(B1:B10)"
    REM Cella A1 viser det lokaliserte funksjonsnamnet
    End Sub

## Oppkall av Calc-tilleggsfunksjonar i BASIC

Tilleggsfunksjonane til Calc finst i UNO-tenestene com.sun.star.sheet.addin.Analysis, com.sun.star.sheet.addin.DateFunctions og com.sun.star.sheet.addin.PricingFunctions.

### Eksempel:

    REM Eksempel på oppkall av Addin-funksjonen SQRTPI
    Funksjonen MySQRTPI(arg som dobbel) som dobbel
       Dim oService as Object
       oService = CreateUnoService("com.sun.star.sheet.addin.Analysis")
       MySQRTPI = oService.getSqrtPi(arg)
    End Function

## Setja celleformlar med Add-in-funksjonar

Add-in-funksjonen må skrivast med UNO-tenarnamnet.

### Eksempel:

    Sub AssignAddInFormulaToCell
    REM Legg ein Add-in-formel til i cella A1. Funksjonsnamnet er namnet frå UNO-tenesta.
        oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
        oCell.Formula = "=com.sun.star.sheet.addin.Analysis.getBin2Dec(B1)"
    REM Cella A1 viser det lokaliserte funksjonsnamnet
    End Sub

## Namnet på UNO-tenesta for Analyse-tilleggsfunksjonane

Tabellen nedanfor viser alle Add-in-funksjonane i Calc og dei respektive UNO-tenestenamna.

Funksjonsnamn i Calc | Namn på UNO-tenestene
--- | ---
PÅLØPT.PERIODISK.RENTE | com.sun.star.sheet.addin.Analysis.getAccrint
PÅLØPT.FORFALLSRENTE | 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
BINTILDES | com.sun.star.sheet.addin.Analysis.getBin2Dec
BINTILHEKS | com.sun.star.sheet.addin.Analysis.getBin2Hex
BINTILOKT | com.sun.star.sheet.addin.Analysis.getBin2Oct
KOMPLEKS | com.sun.star.sheet.addin.Analysis.getComplex
KONVERTER | com.sun.star.sheet.addin.Analysis.getConvert
KUPONG.DAGAROPPGJERTILPERIODESLUTT (COUPDAYBS på engelsk) | com.sun.star.sheet.addin.Analysis.getCoupdaybs
KUPONG.DAGAR (COUPDAYS på engelsk) | com.sun.star.sheet.addin.Analysis.getCoupdays
KUPONG.DAGAROPPGJERTILNESTERENTEUTB (COUPDAYSNC på engelsk) | com.sun.star.sheet.addin.Analysis.getCoupdaysnc
KUPONG.NESTERENTEUTB | com.sun.star.sheet.addin.Analysis.getCoupncd
KUPONG.TALKUPONGPERIODAR | com.sun.star.sheet.addin.Analysis.getCoupnum
KUPONG.FØRRERENTEUTB | com.sun.star.sheet.addin.Analysis.getCouppcd
SAMLA.RENTE | com.sun.star.sheet.addin.Analysis.getCumipmt
SAMLA.HOVUDSTOL | com.sun.star.sheet.addin.Analysis.getCumprinc
DESTILBIN | com.sun.star.sheet.addin.Analysis.getDec2Bin
DESTILHEKS | com.sun.star.sheet.addin.Analysis.getDec2Hex
DESTILOKT | com.sun.star.sheet.addin.Analysis.getDec2Oct
DELTA | com.sun.star.sheet.addin.Analysis.getDelta
DISKONTERT | com.sun.star.sheet.addin.Analysis.getDisc
VALUTA.DESIMAL | com.sun.star.sheet.addin.Analysis.getDollarde
VALUTA.BRØK | com.sun.star.sheet.addin.Analysis.getDollarfr
PERIODAR | com.sun.star.sheet.addin.Analysis.getDuration
DAG.ETTER (EDATE på engelsk) | com.sun.star.sheet.addin.Analysis.getEdate
EFFEKTIV.RENTE | com.sun.star.sheet.addin.Analysis.getEffect
MÅNADSSLUTT (EOMONTH på engelsk) | com.sun.star.sheet.addin.Analysis.getEomonth
FEILF | com.sun.star.sheet.addin.Analysis.getErf
FEILFK | com.sun.star.sheet.addin.Analysis.getErfc
DOBBELFAKULTET | com.sun.star.sheet.addin.Analysis.getFactdouble
SVPLAN | com.sun.star.sheet.addin.Analysis.getFvschedule
SFF | com.sun.star.sheet.addin.Analysis.getGcd
GRENSEVERDI | com.sun.star.sheet.addin.Analysis.getGestep
HEKSTILBIN | com.sun.star.sheet.addin.Analysis.getHex2Bin
HEKSTILDES | com.sun.star.sheet.addin.Analysis.getHex2Dec
HEKSTILOKT | com.sun.star.sheet.addin.Analysis.getHex2Oct
IMABS | com.sun.star.sheet.addin.Analysis.getImabs
IMAGINÆR | com.sun.star.sheet.addin.Analysis.getImaginary
IMARGUMENT | com.sun.star.sheet.addin.Analysis.getImargument
IMKONJUGERT | 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
IMEKSP | 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
IMOPPHØG | com.sun.star.sheet.addin.Analysis.getImpower
IMPRODUKT | com.sun.star.sheet.addin.Analysis.getImproduct
IMREELL | com.sun.star.sheet.addin.Analysis.getImreal
IMSEKANT | com.sun.star.sheet.addin.Analysis.getImsec
IMSEKANTH | com.sun.star.sheet.addin.Analysis.getImsech
IMSIN | com.sun.star.sheet.addin.Analysis.getImsin
IMSINH (IMSINH på engelsk) | com.sun.star.sheet.addin.Analysis.getImsinh
IMROT | com.sun.star.sheet.addin.Analysis.getImsqrt
IMSUB | com.sun.star.sheet.addin.Analysis.getImsub
IMSUMMER | com.sun.star.sheet.addin.Analysis.getImsum
IMTAN (IMTAN på engelsk) | com.sun.star.sheet.addin.Analysis.getImtan
RENTESATS | com.sun.star.sheet.addin.Analysis.getIntrate
ERPARTAL | com.sun.star.sheet.addin.Analysis.getIseven
ERODDETAL | com.sun.star.sheet.addin.Analysis.getIsodd
MFM | com.sun.star.sheet.addin.Analysis.getLcm
MPERIODAR | com.sun.star.sheet.addin.Analysis.getMduration
MRUND | com.sun.star.sheet.addin.Analysis.getMround
MULTINOMINELL | com.sun.star.sheet.addin.Analysis.getMultinomial
NETTO.ARBEIDSDAGAR (NETWORKDAYS på engelsk) | com.sun.star.sheet.addin.Analysis.getNetworkdays
NOMINELL | com.sun.star.sheet.addin.Analysis.getNominal
OKTTILBIN | com.sun.star.sheet.addin.Analysis.getOct2Bin
OKTTILDES | com.sun.star.sheet.addin.Analysis.getOct2Dec
OKTTILHEKS | com.sun.star.sheet.addin.Analysis.getOct2Hex
AVVIKFP.PRIS | com.sun.star.sheet.addin.Analysis.getOddfprice
AVVIKFP.AVKASTNING | com.sun.star.sheet.addin.Analysis.getOddfyield
AVVIKSP.PRIS | com.sun.star.sheet.addin.Analysis.getOddlprice
AVVIKSP.AVKASTNING | com.sun.star.sheet.addin.Analysis.getOddlyield
PRIS | com.sun.star.sheet.addin.Analysis.getPrice
PRIS.DISKONTERT | com.sun.star.sheet.addin.Analysis.getPricedisc
PRIS.FORFALL | com.sun.star.sheet.addin.Analysis.getPricemat
KVOTIENT | com.sun.star.sheet.addin.Analysis.getQuotient
TILFELDIGMELLOM | com.sun.star.sheet.addin.Analysis.getRandbetween
MOTTEKEN.AVKAST | com.sun.star.sheet.addin.Analysis.getReceived
SUMMER.REKKJE | com.sun.star.sheet.addin.Analysis.getSeriessum
ROTPI | com.sun.star.sheet.addin.Analysis.getSqrtpi
TBILLEKV | com.sun.star.sheet.addin.Analysis.getTbilleq
TBILLPRIS | com.sun.star.sheet.addin.Analysis.getTbillprice
TBILLAVKASTNING | com.sun.star.sheet.addin.Analysis.getTbillyield
VEKENR (WEEKNUM på engelsk) | com.sun.star.sheet.addin.Analysis.getWeeknum
ARBEIDSDAG (WORKDAY på engelsk) | com.sun.star.sheet.addin.Analysis.getWorkday
XIR | com.sun.star.sheet.addin.Analysis.getXirr
XNNV | com.sun.star.sheet.addin.Analysis.getXnpv
ÅRDEL (YEARFRAC på engelsk) | com.sun.star.sheet.addin.Analysis.getYearfrac
AVKAST | com.sun.star.sheet.addin.Analysis.getYield
AVKAST.DISKONTERT | com.sun.star.sheet.addin.Analysis.getYielddisc
AVKAST.FORFALL | com.sun.star.sheet.addin.Analysis.getYieldmat

## Namn på UNO-tenesta til Date Add-funksjonane

Tabellen nedanfor viser alle Add-in-funksjonane i Calc og dei respektive UNO-tenestenamna.

Funksjonsnamn i Calc | UNO-tenestenamn
--- | ---
DAGAR.I.MÅNADEN (DAYSINMONTH på engelsk) | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth
DAGAR.I.ÅRET (DAYSINYEAR på engelsk) | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth
MÅNADAR (MONTHS på engelsk) | com.sun.star.sheet.addin.DateFunctions.getDiffMonths
VEKER (WEEKS på engelsk) | com.sun.star.sheet.addin.DateFunctions.getDiffWeeks
TAL.PÅ.ÅR (YEARS på engelsk) | com.sun.star.sheet.addin.DateFunctions.getDiffYears
ROT13 (ROT13 på engelsk) | com.sun.star.sheet.addin.DateFunctions.getRot13
VEKER.I.ÅRET (WEEKSINYEAR på engelsk) | com.sun.star.sheet.addin.DateFunctions.getWeeksInYear

## Namn på UNO-tenester for prissetjing av tilleggsfunksjonar

Tabellen nedanfor viser ei liste over alle Add-in-funksjonane for prissetjing i Calc og dei respektive UNO-tenestenamna.

Funksjonsnamn i Calc | UNO-tenestenamn
--- | ---
OPT_GRENSE | com.sun.star.sheet.addin.PrincingFunctions.getOptBarrier
OPT_SANNSYNLEG_TREFF | com.sun.star.sheet.addin.PrincingFunctions.getOptProbHit
OPT_SANNSYNLEG_I_PENGAR | com.sun.star.sheet.addin.PrincingFunctions.getOptProbInMoney
OPT_TOUCH | com.sun.star.sheet.addin.PrincingFunctions.getOptTouch

Liknande emne

CreateUnoService-funksjonen