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


Støtt oss!