Guide e Tutorials:indexed | |||||||||||||||||||||||
Lavorare con
gli oggetti Excel (ottava parte) Come già visto nelle lezioni precedenti, i requisiti fondamentali per poter interagire con gli oggetti di Excel sono due: avere installato una copia di Microsoft Excel ed aver precedentemente caricato la libreria oggetti di Excel disponibile nella finestra di dialogo Riferimenti. Per una maggiore comprensione, la finestra si apre cliccando sulla voce Progetto del menu principale e selezionando dal menu Progetto che si aprirà, la voce Riferimenti che è quella accompagnata dall'icona dei libri. Basterà poi selezionare la voce Microsoft Excel Object Library per poter utilizzare tutti gli oggetti di cui la libreria in questione si compone. Quando il foglio di lavoro viene protetto, è possibile aggiungere una nuova forma di sicurezza che consiste nel rendere invisibili le formule delle celle, anche se queste vengono selezionate dall'utente. Per eseguire tale operazione si utilizza la proprietà FormulaHidden che si chiama in causa nel seguente modo:
questo dimostra che non è necessario procedere cella per cella ma si può agevolmente nascondere la formula di un intero Range di celle. Naturalmente per disabilitare la proprietà basta impostarla su False. Se ad esempio selezioniamo un Range di celle A1,D4 e assegnamo ad esso una formula comune ad esempio il prodotto tra il numero di riga e quello di colonna di ogni cella, possiamo renderci conto del risultato ottenuto mediante la proprietà FormulaHidden, in questo modo:
Naturalmente per ottenere un qualsiasi risultato il foglio di calcolo deve essere protetto. Quali sono le principali modalità di protezione di un documento Excel? Innanzitutto esiste la proprietà ProtectWindows di sola lettura e quindi non modificabile da codice, che determina se le finestre delle cartelle di lavoro sono protette o meno. Poi abbiamo la proprietà ProtectStructure anch'essa di sola lettura che determina se la disposizione dei fogli di lavoro è bloccata. ProtectSelection permette di impostare o eliminare la protezione sugli elementi del grafico per cui possono risultare non selezionabili tramite mouse. ProtectScenarios invece indica solo se gli scenari del foglio di lavoro sono protetti. ProtectionMode indica se la protezione a interfaccia utente è attiva. ProtectGoalSeek permette di impostare o eliminare la protezione sulle coordinate del grafico. ProtectFormatting permette di impostare o eliminare la protezione sulla formattazione degli elementi del grafico. ProtectDrawingObjects determina se gli oggetti-disegno sono protetti. ProtectData permette di impostare o eliminare la protezione sull'accesso alle formule delle celle. ProtectContents determina se tutto il contenuto di un foglio è stato protetto o meno. Nel caso dell'esempio precedente non è possibile utilizzare nessuna di queste proprietà per applicare la protezione al foglio di lavoro siccome sono proprietà di sola lettura. Si dovrà così ricorrere al metodo Protect, dotato della seguente sintassi:
dove in Password si dovrà indicare la parola chiave di protezione. In DrawingObjects si indicherà invece (impostandolo su True o False) se la protezione si estende anche agli elementi di disegno del foglio di calcolo. Contents si riferisce invece all'oggetto in questione (nel nostro caso Oggetto è il foglio di calcolo ossia foglioExcel). Nel caso di un foglio di calcolo questo parametro protegge tutte le celle. Scenarios protegge gli scenari, impostando il parametro su True mentre UserInterfaceOnly protegge l'interfaccia utente. Ad esempio se aggiungessimo all'esempio precedente la seguente linea di codice:
otterremmo l'invisibilità delle formule di ciascuna cella come mostrato sotto: ed in più, ad ogni tentativo di modificare il valore di qualsiasi cella, otterremmo una finestra di messaggio come quella qui sotto: Per estendere la protezione anche alla cartella di lavoro sarà sufficiente indicare come oggetto non più foglioExcel ma cartExcel ossia l'oggetto Excel.WorkBook. Una linea di codice di questo tipo:
protegge tutta la cartella di lavoro. Per verificarne il grado di protezione si utilizza la proprietà HasProtection: visualizziamo una finestra di messaggio all'apertura della cartella di lavoro nel caso sia protetta:
Per determinare se la cartella di lavoro è protetta dalla scrittura (anche se tutte le formule possono essere visibili e gli oggetti-disegno o i grafici possono essere disponibili alle azioni del mouse dell'utente) si usa invece la proprietà WriteReserved:
Nell'esercizio proposto al termine dell'articolo si potrà fare un po' di pratica nella protezione di un foglio di lavoro. Infine vediamo il metodo PurgeChangeHistoryNow che permette di eliminare l'elenco delle ultime azioni dal registro delle modifiche della cartella di lavoro. La sintassi è la seguente:
dove Days specifica per quanto tempo si desidera mantenere le modifiche in termini di giorni e SharingPassword specifica la password, a meno che questa non sia già stata applicata caso in cui verrà ignorata.
|