Pomoc Collabora Office 24.04
Poniżej opisano podstawowe użycie procedur, funkcji i właściwości w Collabora Office Basic.
Kiedy tworzysz nowy moduł, Collabora Office Basic automatycznie wstawia Sub o nazwie "Main". Ta nazwa domyślna nie ma nic wspólnego z kolejnością ani punktem początkowym projektu Collabora Office Basic. Możesz też bezpiecznie zmienić nazwę tej procedury Sub.
Nazwy zmiennych publicznych, podprogramów, funkcji i właściwości obłożone są pewnymi ograniczeniami. Nie wolno używać tej samej nazwy co jeden z modułów tej samej biblioteki.
Procedury (Sub), funkcje (Function) i właściwości (Property) pomagają utrzymać uporządkowany przegląd, dzieląc program na logiczne części.
Kolejną zaletą korzystania z procedur, funkcji i właściwości jest możliwość wykorzystywania w innym projekcie napisanego kodu programu zawierającego zadania składowe.
Zmienne mogą być przekazywane zarówno do procedur, funkcji, jak i właściwości. Sub Function lub Property musi zostać zadeklarowana, aby oczekiwać parametrów:
Sub SubName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...)
' miejsce na niestandardowy kod
End Sub
Procedura SUB jest wywoływana z wykorzystaniem następującej składni:
[Call] SubName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Parametry przekazane do Sub muszą być zgodne z parametrami podanymi w deklaracji Sub.
Ten sam proces dotyczy Function. Ponadto funkcje zawsze zwracają wynik funkcji. Wynik funkcji jest definiowany przez przypisanie zwracanej wartości do nazwy funkcji:
Function FunctionName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...) As TYPENAME
' miejsce na niestandardowy kod
FunctionName=Result
End Function
Funkcja Function jest wywoływana z wykorzystaniem następującej składni:
Variable = FunctionName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Właściwości łączą składnię procedur i funkcji. Property zwykle wymaga do jednego parametru.
Private _IsApproved As TYPENAME
Property Get IsApproved As TYPENAME
' miejsce na niestandardowy kod
IsApproved = some_computation
End Property
Property Let IsApproved(value As TYPENAME)
' miejsce na niestandardowy kod
_IsApproved = computed_value
End Property
Właściwość Property jest wywoływana z wykorzystaniem następującej składni:
var = IsApproved
IsApproved = some_value
Możesz także użyć pełnej nazwy do wywołania procedury, funkcji lub właściwości:
[Call] Library.Module.Macro(), gdzie Call jest opcjonalne.
Na przykład, aby wywołać makro Autotext z biblioteki Gimmicks, użyj następującego polecenia:
Gimmicks.AutoText.Main()
Parametry mogą być przekazywane do procedury, funkcji lub właściwości zarówno przez odwołanie jak i przez wartość. Jeśli nie określono inaczej, parametr jest zawsze przekazywany przez odwołanie. Oznacza to, że Sub, Function lub Property otrzymuje parametr i może czytać oraz modyfikować jego wartość.
Jeśli chcesz przekazać parametr przez wartość, wstaw słowo kluczowe ByVal przed parametrem, kiedy wywołujesz Sub, Function lub Property, na przykład:
Function ReadOnlyParms(ByVal p2, ByVal p2)
' miejsce na niestandardowy kod
End Function
result = ReadOnlyParms(parm1, parm2)
W tym przypadku oryginalna zawartość parametru nie zostanie zmodyfikowana przez Function, ponieważ otrzymuje ona tylko wartość, a nie sam parametr.
Funkcje, procedury lub właściwości można zdefiniować za pomocą opcjonalnych parametrów, na przykład:
Sub Rounding(number, Optional decimals, Optional format)
' miejsce na niestandardowy kod
End Sub
Kiedy wywołujesz funkcję lub podprogram, możesz przekazać argumenty poprzez pozycję lub nazwę. Przekazywanie przez pozycję oznacza po prostu wypisanie argumentów w kolejności, w jakiej parametry są zdefiniowane w funkcji lub podprogramie. Przekazywanie według nazwy wymaga poprzedzenia argumentu nazwą odpowiedniego parametru, po której następuje dwukropek i znak równości (:=). Argumenty słów kluczowych mogą pojawiać się w dowolnej kolejności. Przykłady można znaleźć w opisie funkcji Basic Replace().
Gdy trzeba przekazać mniej parametrów, użyj argumentów słów kluczowych. Przekazywanie wartości dla mniejszej liczby parametrów według pozycji wymaga podania wartości dla wszystkich parametrów przed nimi, opcjonalnych lub nie. Zapewnia to, że wartości znajdują się we właściwych pozycjach. Jeśli przekazujesz parametry według nazwy – używając argumentów słów kluczowych – możesz pominąć wszystkie inne argumenty pośrednie.
Zmienna zdefiniowana w ramach Sub, a Function lub Property zachowuje ważność tylko do końca procedury. Jest to tak zwana zmienna „lokalna”. W wielu przypadkach potrzebujesz, aby zmienna była poprawna we wszystkich procedurach, we wszystkich modułach we wszystkich bibliotekach lub po wychodzeniu Sub, Function lub Property.
Global VarName As TYPENAME
Zmienna jest ważna tak długo, jak długo trwa sesja Collabora Office.
Public VarName As TYPENAME
Zmienna jest dostępna we wszystkich modułach.
Private VarName As TYPENAME
Zmienna jest dostępna tylko w tym module.
Dim VarName As TYPENAME
Zmienna jest dostępna tylko w tym module.
Wymuś, aby zmienne prywatne były prywatne we wszystkich modułach, ustawiając CompatibilityMode(True).
' ***** Module1 *****
Private myText As String
Sub initMyText
myText = "Witaj"
Print "W module 1 : ", myText
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( True )
initMyText
' Teraz zwraca pusty ciąg
' (lub jeśli Option Explicit zgłasza błąd)
Print "Teraz w module 2 : ", myText
End Sub
Static VarName As TYPENAME
Zmienna zachowuje swoją wartość do następnego wprowadzenia Function, Sub lub Property. Deklaracja musi istnieć wewnątrz elementu Sub, Function lub Property.
Podobnie jak w przypadku zmiennych, dołącz znak deklaracji typu po nazwie funkcji lub typ wskazywany przez As i odpowiedni typ danych na końcu listy parametrów, aby zdefiniować typ zwracanej funkcji lub właściwości wartość. Na przykład:
Function WordCount(WordText As String) As Integer