Pomoc LibreOffice 25.2
Właściwość, zwana także polem lub atrybutem, charakteryzuje dany obiekt lub informację. Właściwości mogą służyć do kontrolowania dostępu do danych. Powszechne jest umieszczanie instrukcji przy ustawianiu lub odczytywaniu czasu właściwości. Kod może się różnić od prostego przypisania do złożonych procedur zależnych od kontekstu. Użycie akcesorów Get, Let lub Set wymusza spójność właściwości, gdy jest to konieczne.
Ta instrukcja wymaga umieszczenia Option Compatible przed kodem programu wykonywalnego w module.
       
         [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
      name: Nazwa właściwości.
argument: Wartość, która ma zostać przekazana do procedury ustawiającej Property.
Funkcja ustawienia Property często przyjmuje pojedynczy argument. Dozwolone są jednak również argumenty wielokrotne.
      Option Compatible
      Sub Main
          ProductName = "Office"
          Print ProductName ' wyświetla "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
      W przypadku braku Property Let lub Property Set, Property Get pomaga zdefiniować chronione informacje, które nie mogą zostać przypadkowo zmienione przez obcy moduł:
      Option Compatible
      Public Property Get PathDelimiter As String ' Zmienna tylko do odczytu
          Static this As String
          If this = "" Then : Select Case GetGuiType()
              Case 1 : this = ";" ' Windows
              Case 4 : this = ":" ' Linux lub macOS
              Case Else : Error 423 ' Nie zdefiniowano właściwości lub metody: PathDelimiter
          End Select : End If
          PathDelimiter = this
      End Property ' PathDelimiter jest tylko do odczytu
      
      Sub Main
          PathDelimiter = "a sentence" ' nic nie robi
      End Sub
      Użyj Let lub Set podczas obsługi usług UNO lub obiektów klas:
      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