Innhald
Innhaldsliste 🔎︎

# Property-uttrykket

Ein eigenskap (property), også kalla felt eller attributt, karakteriserer eit gjeve objekt eller ein opplysning. Eigenskapar kan brukast til å kontrollera tilgangen til data. Det er vanleg å ta med instruksjonar når eigenskapane vert sette eller lesne. Kodane kan vera alt frå enkle tildelingar til komplekse innhaldsavhengige rutinar. Bruk av Get, Let eller Set tvingar konsistensen for eigenskapen når det er nødvendig.

Dette uttrykket krev at Option Compatible vert sett framføre programkoden i ein modul.

### Syntaks:

             [Private | Public] Property Get name[char | As typename]
             End Property

             [Private | Public] Property [Let | Set] name[char] [([Optional [ByRef | ByVal]]value[char | As typename])] [As typename]
             End Property

### Parametrar:

namn: Namnet på eigenskapen.

argument: Verdi som skal overførast til rutinen Property.

Property brukar ofte eitt enkelt argument. Fleire argument kan likevel brukast samstundes.

##### argumentfragment

          {[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}

##### Parametrar

Optional: Argumentet er ikkje obligatorisk.

ByRef: Argumentet vert overført ved referanse. ByRef er standard.

ByVal: Argumentet vert overført ved verdi. Verdien kan endrast av den oppkalla rutinen.

char: Typedeklareringsteikn.

typename: Primitivt datatypenamn. Også bibliotek eller moduldefinerte typar kan spesifiserast.

= expression: Oppgjev ein standardverdi for argumentet som samsvarar med den deklarerte typen. Optional er nødvendig for kvart argument som er ein standardverdi.

ParamArray: Bruk ParamArray når talet på parametrar ikkje er fastsett. Eit typiske scenario er ein brukardefinert funksjon i Calc. Bruken av ParamArray må avgrensast til det siste argumentet i ein rutine.

Bruk av ParamArray eller = expression krev at Option Compatible er sett inn i ein modul framføre programkoden som skal utførast.

Når du brukar Option VBASupport 1, vert argumenta Optional brukte utan standardverdi (= expression) initialiserte ut frå datatypen, bortsett frå Variant.

##### typenamn-fragment

          {Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}

##### teikn-fragment

          { % | & | ! | # | $ | @ }

## Eksempel

          Option Compatible
          Sub Main
              ProductName = "Office"
              Print ProductName ' viser "LibreOffice"
          End Sub

          Private _office As String
          Property Get ProductName As String
              ProductName = _office
          End Property
          Property Let ProductName(value As String)
              _office = "Libre"& value
          End Property

Når eigenskapen Let eller Set manglar, hjelper Get til med å verna informasjon som ikkje må endrast av ein annan modul ved eit uhell.

          Option Compatible
          Public Property Get PathDelimiter As String ' Skriveverna variabel
              Static this As String
              If this = "" Then : Select Case GetGuiType()
                  Case 1 : this = ";" ' Windows
                  Case 4 : this = ":" ' Linux eller macOS
                  Case Else : Error 423 ' Eigenskap eller metode ikkje definert: PathDelimiter
              End Select : End If
              PathDelimiter = this
          End Property ' skriveverna PathDelimiter

          Sub Main
              PathDelimiter = "a sentence" ' gjer ingenting
          End Sub

Bruk Let eller Set når du handsamar UNO-tenester eller klasseobjekt:

          Option Compatible
          Sub Main
              'Set anObject = CreateUnoService( "com.sun.star.frame.Desktop" )
              anObject = CreateUnoService( "com.sun.star.frame.Desktop" )
              Print anObject.SupportedServiceNames(0) ' displays "com.sun.star.frame.Frame"
          End Sub

          Property Get anObject As Object
              Set anObject = _obj
          End Property

          Private _obj As Object

          'Property Set anObject(value As Object)
              'Set _obj = value.CurrentFrame
          'End Property
          Property Let anObject(value As Object)
              Set _obj = value.CurrentFrame
          End Property

Liknande emne

Grunnleggjande om subrutiner

Bruka prosedyrar, funksjonar og eigenskapar

Function-uttrykket

Sub-uttrykket

Uttrykka End, Exit

Option ClassModule-uttrykket

Option Compatible-uttrykket