Sub Deklarace1
Dim oSheet
Sheets = ThisComponent.getSheets()
oSheet = Sheets.getByName("List1")
'oSheet = thisComponent.Sheets(0)
'buňky zadávané indexy (positions)
----------------------------------------------------------------------
oSheet.getCellByPosition(48,1).Value = 4 'přiřazení hodnoty k buňce
'n = oSheet.getCellByPosition(48,1).Value
' přiřazení hodnoty k proměnné "n" která by měla být deklarována - ale funguje to i bez.
----------------------------------------------------------------------
'buňky zadávané jmény (pouze zápis do buněk)
oSheet.getCellRangeByName("A1").String = "Input Data"
oSheet.getCellRangeByName("A2").Value = 4
oSheet.getCellRangeByName("A3").Value = 5
oSheet.getCellRangeByName("A4").Formula = "=A2*A3"
End Sub
Horní způsob je vhodný pro jednorázové vložení, nebo načtení hodnoty do nebo z buňky. Stačí deklarace listu. Pak už se popsaným způsobem zapisuje, nebo čte buňka.
SUB Deklarace2
Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Doc = ThisComponent
Sheet = Doc. Sheets ( 0 )
Cell = Sheet. getCellByPosition ( 0 , 0 )
Cell. Value = 100
Cell = Sheet. getCellByPosition ( 0 , 1 )
Cell. String = 1000
Cell = Sheet. getCellByPosition ( 0 , 2 )
Cell. Formula = "=A1+A2"
MsgBox Cell. Value
End SUB
Tento systém zápisu je vhodný pro jiné účely. Mimo deklarací listu se deklarují buňky jako adresy souřadnic (možné též jménem ale je to méně praktické). Buňky se označí jakkoliv to běžné "Cell", nebo "oCell" lze zadat jako proměnnou - je to proměnná typu object, ale není nutná deklarace. To je ale také dané účelem.
Výhodou je že pak už pracujeme jenom s krátkým výrazem. Doporučuji spíše začátečníkům deklarovat proměnnou buňky stejně tak jak je adresována v sešitě. Tedy například :
Dim A1 as object
A1 = Sheet.getCellRangeByName("A1"), nebo
A1 = Sheet.getCellByPosition (0,0)
Potom totiž zapíšeme proměnnou napříjklad takto :
A1.String = "Zápis", za chvíli to změníme
A1.Value = 12^2
A1.Formula = "=Sqrt(16)/2" 'Vzorec který se objeví v buňce
Takže můžeme vložit makrem jak vzorec, tak přímo vypočtenou hodnotu konkrétně
A1.Value = sqr(16)/2 ' v buňce bude jen výsledek.
Zápisy souřadnicemi se hodí do cyklů. Takže nyní si uděláme obecnou buňku
dim bunka as object
For i = 1 To 100
For j = 1 To 100
bunka = Sheet.getCellByPosition(i,j)
'úsek 100 x 100 se začátkem v buňce B2
bunka.Value = i * j
Next j
Next i
Tak nevím jestli Vám to pomůže je toho dost co by se k tomuto dalo ještě napsat - ale pro praxi, nebo rozhodnutí jak deklarovat to většinou stačí.
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ