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.

note

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