Dnes se podíváme na makro,které umí naráz vymazat celý dokument.Pozor,vymaže pouze neuzamčené buňky,což je výhoda tohoto makra.Aby nám makro pracovalo v rozsahu v jakém potřebujeme,budeme jej muset nepatrně upravit.Červeně zvýrazněný rozsah buněk (v příkladu A1:C10),upravte podle vašich potřeb.Upravu lze samozdřejmě provést buď před zkopírováním do OOo nebo až v samotném správci maker.
sub ClearUnlockedCells
dim oSheet as object, oCell as object
dim lSloupec as long, lRadek as long, lCellFlags as long
' Nastavit co chci mazat
with com.sun.star.sheet.CellFlags
lCellFlags = .VALUE + .STRING + .DATETIME + .FORMULA
end with
' dalsi mozne konstanty:
'.FORMATTED, .ANNOTATION, .STYLES, .HARDATTR, .EDITATTR, .OBJECTS
set oSheet = ThisComponent.Sheets("Skills")
' nastavit adresu
with oSheet.getCellRangeByName("A1:C10").RangeAddress
' projdi vsechny bunky a nezamknute smaz
for lSloupec = .StartColumn to .EndColumn
for lRadek = .StartRow to .EndRow
set oCell = oSheet.getCellByPosition(lSloupec, lRadek)
iif(oCell.CellProtection.IsLocked,, _
oCell.ClearContents(lCellFlags))
next
next
end with
end sub