![]() |
Schreibschutz in Excel
Hallo!
Ich muss mittels delphi eine Excel mappe schreibgeschützt machen. Ich habe zwar verstanden, wie man mit OLE eine xls datei öffnet, aber wie kann ich schreibschutz draufmachen? Danke! |
Re: Schreibschutz in Excel
wie immer in solchen sachen: ein makro aufzeichnen ;)
Delphi-Quellcode:
Mfg Frank
procedure TForm1.Button_ExcelSchutzClick(Sender: TObject);
Var flcid:Cardinal; _bool,_password:olevariant; begin flcid:=GetUserDefaultLCID; try ExcelApplication1.Connect; ExcelApplication1.Visible[flcid]:=true; ExcelApplication1.UserControl:=true; ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets.Item[1] as ExcelWorkSheet); //excel-Tabellenblatt schützen, vieles ist optional, auch das password _bool:=true; _password:='Passwort'; ExcelWorksheet1.Protect(_password,_bool,_bool,_bool); //oder, ohne die workbooks und worksheets (die beiden connects kannst du dir sparen) //(ExcelApplication1.ActiveSheet as ExcelWorkSheet).Protect(_password,_bool,_bool,_bool,emptyparam,flcid); //Schutz aufheben //ExcelWorksheet1.unProtect(_password); ExcelWorksheet1.Disconnect; ExcelWorkbook1.Disconnect; ExcelApplication1.Disconnect; except end; end; |
Re: Schreibschutz in Excel
Danke!
|
Re: Schreibschutz in Excel
Hab mich zu früh gefreut... Es sind nicht genug parameter da. Mein quelltext:
Code:
Aber wenn ich auf den Button klicken, tritt ein fehler auf.
procedure TForm1.Button1Click(Sender: TObject);
var xls, xlw: Variant; begin {load MS Excel} xls := CreateOLEObject('Excel.Application'); {open your xls-file} xlw := xls.WorkBooks.Open(FileName := 'c:\book1.xls', Password := '', ReadOnly := True); {save with other file name} xlw.Protect('lala',true,true,true); xlw.SaveAs(FileName := 'c:\book3.xls', Password := 'test'); {unload MS Excel} xlw := UnAssigned; xls := UnAssigned; end; Welche paremeter gibts bzw. wo kann ich das nachgucken? Danke! |
Re: Schreibschutz in Excel
mein Bsp war für die Serverkompos.
bei welcher Zeile tritt der Fehler auf? |
Re: Schreibschutz in Excel
xlw.Protect('lala',true,true,true);
Er sagt: "Falsche anzahl von parameter" |
Re: Schreibschutz in Excel
das was ich oben gezeigt habe, war der Blattschutz, das was du jetzt hast, ist der arbeitmappenschutz.
Delphi-Quellcode:
xlw.Protect('lala',true,true);
Zitat:
bei den arbeitmappen hat protect nur 3 parameter. Mfg Frank |
Re: Schreibschutz in Excel
Ja, mit 3 klappt es, aber:
Er fragt das passwort gleich beim laden ab und es muss ja nur schreibgeschützt sein Wenn ich lala eingeben, dann sagt er mir: falsches kennwort. |
Re: Schreibschutz in Excel
Zitat:
Zitat:
Du kannst eine Excel-mappe in verschiedenster Art und Weise schützen ;) wenn du nur einen Schreibschutz willst, nimm den arbeitsmappenschutz oder Blattschutz |
Re: Schreibschutz in Excel
Zitat:
Zitat:
Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz