Aracılığıyla paylaş


Nasıl Yapılır: Parola Korumalı Belgede Veriyi Önbelleğe Alma

Bir belge veya parola ile korunan bir çalışma kitabı veri önbelleğine veri eklerseniz, otomatik olarak önbelleğe alınan verideki değişiklikler kaydedilmez.Önbelleğe alınmış verideki değişiklikleri projenizdeki iki yöntemi geçersiz kılarak kaydedebilirsiniz.

Uygulama hedefi: Bu konudaki bilgiler, şu uygulamalar için belge düzeyi projelere yöneliktir. Excel 2013 ve Excel 2010; Word 2013 ve Word 2010. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

Word Belgelerinde Önbelleğe Alma

Parola korumalı Word belgesinde veriyi önbelleğe almak için

  1. ThisDocument sınıfında, önbelleğe alınacak ortak alan veya özelliği işaretleyin.Daha fazla bilgi için bkz. Verileri Önbelleğe Alma.

  2. ThisDocument sınıfındaki DocumentBase.UnprotectDocument yöntemini geçersiz kılın ve belgeden korumayı kaldırın.

    Belge kaydedildiğinde, belgeyi korumasız yapmanız için size şans vermek amacıyla Office çalışma zamanı için Visual Studio Araçları bu yöntemi çağırır.Bu, önbelleğe alınan verideki değişikliklerin kaydedilmesine olanak sağlar.

  3. ThisDocument sınıfındaki DocumentBase.ProtectDocument yöntemini geçersiz kılın ve korumayı belgeye yeniden uygulayın.

    Belge kaydedildikten sonra, belgeye korumayı yeniden uygulamanız için size şans vermek amacıyla Office çalışma zamanı için Visual Studio Araçları bu yöntemi çağırır.

Örnek

Aşağıdaki kod örneğinde parola ile korunan Word belgesinde verinin nasıl önbelleğe alındığı gösterilir.Aynı tür korumanın DocumentBase.ProtectDocument yönteminde tekrar uygulanması için, kod DocumentBase.UnprotectDocument yöntemindeki korumayı kaldırmadan önce, geçerli ProtectionType değerini kaydeder.

<CachedAttribute()> _
Public CachedString As String = "This string is cached in the document." 

Private protectionTypeValue As Word.WdProtectionType

Protected Overrides Sub UnprotectDocument()
    If Me.ProtectionType <> Word.WdProtectionType.wdNoProtection Then
        protectionTypeValue = Me.ProtectionType
        Me.Unprotect(securelyStoredPassword)
    End If 
End Sub 

Protected Overrides Sub ProtectDocument()
    Me.Protect(protectionTypeValue, password:=securelyStoredPassword)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the document.";

private Word.WdProtectionType protectionTypeValue;

protected override void UnprotectDocument()
{
    if (this.ProtectionType != Word.WdProtectionType.wdNoProtection)
    {
        protectionTypeValue = this.ProtectionType;
        this.Unprotect(ref securelyStoredPassword);
    }
}

protected override void ProtectDocument()
{
    this.Protect(protectionTypeValue, ref missing,
        ref securelyStoredPassword, ref missing, ref missing);
}

Kod Derleniyor

Bu kodu, projenizdeki ThisDocument sınıfına ekleyin.Kodda, parolanın securelyStoredPassword isimli alanda saklandığı varsayılır.

Excel Çalışma Kitaplarında Önbelleğe Alma

Excel projelerinde, Workbook.Protect yöntemini kullanarak tüm çalışma kitabını koruduğunuz zaman bu yordam gereklidir.Eğer Worksheet.Protect yöntemi kullanarak sadece belirli bir çalışma sayfasını koruyorsanız, bu yordam gerekli değildir.

Parola korumalı Excel çalışma kitabında veriyi önbelleğe almak için

  1. ThisWorkbook sınıfında veya Sheetn sınıflarının birinde, önbelleğe alınacak ortak alan veya özelliği işaretleyin.Daha fazla bilgi için bkz. Verileri Önbelleğe Alma.

  2. ThisWorkbook sınıfındaki WorkbookBase.UnprotectDocument yöntemini geçersiz kılın ve çalışma kitabından korumayı kaldırın.

    Çalışma kitabı kaydedildiğinde, çalışma kitabını korumasız yapmanız için size şans vermek amacıyla Office çalışma zamanı için Visual Studio Araçları bu yöntemi çağırır.Bu, önbelleğe alınan verideki değişikliklerin kaydedilmesine olanak sağlar.

  3. ThisWorkbook sınıfındaki WorkbookBase.ProtectDocument yöntemini geçersiz kılın ve korumayı belgeye yeniden uygulayın.

    Çalışma kitabı kaydedildikten sonra, çalışma kitabına korumayı yeniden uygulamanız için size şans vermek amacıyla Office çalışma zamanı için Visual Studio Araçları bu yöntemi çağırır.

Örnek

Aşağıdaki kod örneğinde parola ile korunan Excel çalışma kitabında verinin nasıl önbelleğe alındığı gösterilir.Aynı tür korumanın WorkbookBase.ProtectDocument yönteminde tekrar uygulanması için, kod WorkbookBase.UnprotectDocument yöntemindeki korumayı kaldırmadan önce, geçerli ProtectStructure ve ProtectWindows değerlerini kaydeder.

<CachedAttribute()> _
Public CachedString As String = "This string is cached in the workbook." 

Private protectStructureValue As Boolean 
Private protectWindowsValue As Boolean 

Protected Overrides Sub UnprotectDocument()
    protectStructureValue = Me.ProtectStructure
    protectWindowsValue = Me.ProtectWindows

    Me.Unprotect(securelyStoredPassword)
End Sub 

Protected Overrides Sub ProtectDocument()
    Me.Protect(securelyStoredPassword, protectStructureValue, _
        protectWindowsValue)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the workbook.";

private bool protectStructureValue;
private bool protectWindowsValue;

protected override void UnprotectDocument()
{
    protectStructureValue = this.ProtectStructure;
    protectWindowsValue = this.ProtectWindows;

    this.Unprotect(securelyStoredPassword);
}

protected override void ProtectDocument()
{
    this.Protect(securelyStoredPassword, protectStructureValue,
        protectWindowsValue);
}

Kod Derleniyor

Bu kodu, projenizdeki ThisWorkbook sınıfına ekleyin.Kodda, parolanın securelyStoredPassword isimli alanda saklandığı varsayılır.

Ayrıca bkz.

Görevler

Nasıl Yapılır: Çevrimdışı veya Sunucuda Kullanmak Üzere Verileri Önbelleğe Alma

Nasıl Yapılır: Veri Kaynağını Programlamayla Office Belgesinden Önbelleğe Alma

Kavramlar

Verileri Önbelleğe Alma