Udostępnij za pośrednictwem


Programowa ochrona skoroszytów

Możesz chronić skoroszyt programu Microsoft Office Excel, aby użytkownicy nie mogli dodawać ani usuwać arkuszy, a także programowo wyłączyć ochronę skoroszytu. Opcjonalnie możesz określić hasło, wskazać, czy chcesz chronić strukturę (aby użytkownicy nie mogli przenosić arkuszy) i wskazać, czy chcesz chronić okna skoroszytu.

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programu Excel. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

Ochrona skoroszytu nie uniemożliwia użytkownikom edytowania komórek. Aby chronić dane, należy chronić arkusze. Aby uzyskać więcej informacji, zobacz Instrukcje: Programowa ochrona arkuszy.

Poniższe przykłady kodu używają zmiennej do przechowywania hasła uzyskanego od użytkownika.

Ochrona skoroszytu będącego częścią dostosowywania na poziomie dokumentu

Aby chronić skoroszyt

  1. Wywołaj metodę Protect skoroszytu i dołącz hasło. Aby użyć poniższego przykładu kodu, uruchom go w ThisWorkbook klasie, a nie w klasie arkusza.

    this.Protect(getPasswordFromUser, missing, missing);
    

Aby wyłączyć ochronę skoroszytu

  1. Wywołaj metodę Unprotect , przekazując hasło, jeśli jest to wymagane. Aby użyć poniższego przykładu kodu, uruchom go w ThisWorkbook klasie, a nie w klasie arkusza.

    this.Unprotect(getPasswordFromUser);
    

Ochrona skoroszytu przy użyciu dodatku na poziomie aplikacji

Aby chronić skoroszyt

  1. Wywołaj metodę Protect skoroszytu i dołącz hasło. W tym przykładzie kodu jest używany aktywny skoroszyt. Aby użyć tego przykładu ThisAddIn , uruchom kod z klasy w projekcie.

    this.Application.ActiveWorkbook.Protect(getPasswordFromUser);
    

Aby wyłączyć ochronę skoroszytu

  1. Wywołaj metodę Unprotect aktywnego skoroszytu, przekazując hasło, jeśli jest to wymagane. Aby użyć tego przykładu ThisAddIn , uruchom kod z klasy w projekcie.

    this.Application.ActiveWorkbook.Unprotect(getPasswordFromUser);