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
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.
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.
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
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.
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.
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