Aracılığıyla paylaş


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

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

Uygulama alanı: Bu konudaki bilgiler şu uygulamaların belge düzeyi projelerine yöneliktir: Excel 2007 ve Excel 2010; Word 2007 ve Word 2010. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

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. Veriyi Ö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 Visual Studio Tools for Office çalışma zamanı modülü 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 Visual Studio Tools for Office çalışma zamanı modülü 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. Veriyi Ö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 Visual Studio Tools for Office çalışma zamanı modülü 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 Visual Studio Tools for Office çalışma zamanı modülü 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 İçin Veriyi Önbelleğe Alma

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

Kavramlar

Veriyi Önbelleğe Alma