Delphi - Lapvédelem beállítása az Excel-ben

forráskód letöltése
Ebben a példában annak járunk utána, hogy a Microsoft Excel programban miként kapcsolhatjuk ki és be a lapvédelmet egy munkalapon, valamint hogy a védelem beállítása során milyen funkciókban korlátozhatjuk a felhasználót.
Az Excel programhoz egy OleVariant típusú változó segítségével csatlakozunk, majd a háttérben megnyitott programot láthatóvá tesszük.
FExcelApp:=CreateOleObject('Excel.Application');
FExcelApp.Visible:=True;
Betöltjük a tesztállományt.
FExcelApp.WorkBooks.Open(ExtractFilePath(Application.ExeName)+'test.xls');
A lapvédelmet a WorkSheet objektum Protect metódusával kapcsolhatjuk be.
FExcelApp.ActiveWorkBook.ActiveSheet.Protect(PassWord:=PW, AllowFormattingColumns:=True, AllowFormattingRows:=True);
Protect
Osztály: WorkSheet
procedure Protect(
Password: String; DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables: Boolean
);
Lapvédelem és tulajdonságainak beállítására szolgál. A metódus minden paramétere opcionális.
Paraméterek
Password: String
Jelszó, melynek ismerete szükséges a lapvédelem feloldására.
DrawingObjects
Igaz érték esetén a lapon található alakzatok is védelem alá esnek. Alapértelmezés szerint hamis.
Contents
Alapértelmezésként igaz. Igaz érték esetén minden tartalom védelem alá kerül.
Scenarios
Alapértelmezés szerint igaz. Igaz érték esetén a „változó tartalmú” cellák is védelem alá kerülnek.
UserInterfaceOnly
Igaz érték esetén zárolja a felhasználói interfészt.
AllowFormattingCells
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi a cellák formázását.
AllowFormattingColumns
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi az oszlopok formázását.
AllowFormattingRows
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi a sorok formázását.
AllowInsertingColumns
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi újabb oszlopok beszúrását.
AllowInsertingRows
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi újabb sorok beszúrását.
AllowInsertingHyperlinks
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi új hyperlinkek hozzáadását.
AllowDeletingColumns
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi az oszlopok törlését.
AllowDeletingRows
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi a sorok törlését.
AllowSorting
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi a rendezést.
AllowFiltering
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi a szűrést.
AllowUsingPivotTables: Boolean
Alapértelmezés szerint hamis. Igaz érték esetén engedélyezi pivot a táblák használatát.
A lapvédelem kikapcsolására az UnProtect metódus szolgál, melynek paraméterként csak a védelem jelszavát kell megadnunk.
FExcelApp.ActiveWorkBook.ActiveSheet.UnProtect(PW);