방법: 암호로 보호된 문서의 데이터 캐시
업데이트: 2008년 7월
적용 대상 |
---|
이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다. 프로젝트 형식
Microsoft Office 버전
자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오. |
Word 2007 및 Excel 2007용 문서 수준 프로젝트에서 암호로 보호된 문서 또는 통합 문서의 데이터 캐시에 데이터를 추가하는 경우 캐시된 데이터의 변경 내용은 저장되지 않습니다.
Visual Studio 2008 SP1(서비스 팩 1)부터는 프로젝트에서 두 개의 메서드를 재정의하여 캐시된 데이터에 대한 변경 내용을 저장할 수 있습니다.
Word 문서에서 캐싱
암호로 보호된 Word 문서에서 데이터를 캐시하려면
ThisDocument 클래스에서 공용 필드 또는 속성을 캐시하도록 표시합니다. 자세한 내용은 데이터 캐싱을 참조하십시오.
ThisDocument 클래스의 Document.UnprotectDocument 메서드를 재정의하고 문서의 보호를 해제합니다.
문서가 저장되면 Visual Studio Tools for Office 런타임에서는 이 메서드를 호출하여 문서의 보호를 해제할 수 있게 해 줍니다. 이를 통해 캐시된 데이터의 변경 사항을 저장할 수 있습니다.
ThisDocument 클래스의 Document.ProtectDocument 메서드를 재정의하고 문서에 보호를 다시 적용합니다.
문서가 저장된 후 Visual Studio Tools for Office 런타임에서는 이 메서드를 호출하여 문서에 보호를 다시 적용할 수 있게 해 줍니다.
예제
다음 코드 예제에서는 암호로 보호된 Word 문서에서 데이터를 캐시하는 방법을 보여 줍니다. 이 코드에서는 Document.UnprotectDocument 메서드를 통해 보호를 해제하기 전에 현재 ProtectionType 값을 저장하므로 Document.ProtectDocument 메서드에서 동일한 형식의 보호를 다시 적용할 수 있습니다.
<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);
}
코드 컴파일
프로젝트의 ThisDocument 클래스에 이 코드를 추가합니다. 이 코드에서는 암호가 securelyStoredPassword라는 필드에 저장되어 있다고 가정합니다.
Excel 통합 문서에서 캐싱
Excel 프로젝트에서는 Workbook.Protect 메서드를 사용하여 통합 문서 전체를 암호로 보호할 경우에만 이 절차가 필요합니다. Worksheet.Protect 메서드를 사용하여 특정 워크시트만 암호로 보호하려는 경우에는 이 절차가 필요하지 않습니다.
암호로 보호된 Excel 통합 문서에서 데이터를 캐시하려면
ThisWorkbook 클래스나 Sheetn 클래스 중 하나에서 공용 필드 또는 속성을 캐시하도록 표시합니다. 자세한 내용은 데이터 캐싱을 참조하십시오.
ThisWorkbook 클래스의 Workbook.UnprotectDocument 메서드를 재정의하고 통합 문서의 보호를 해제합니다.
통합 문서가 저장되면 Visual Studio Tools for Office 런타임에서는 이 메서드를 호출하여 통합 문서의 보호를 해제할 수 있게 해 줍니다. 이를 통해 캐시된 데이터의 변경 사항을 저장할 수 있습니다.
ThisWorkbook 클래스의 Workbook.ProtectDocument 메서드를 재정의하고 문서에 보호를 다시 적용합니다.
통합 문서가 저장된 후 Visual Studio Tools for Office 런타임에서는 이 메서드를 호출하여 통합 문서에 보호를 다시 적용할 수 있게 해 줍니다.
예제
다음 코드 예제에서는 암호로 보호된 Excel 통합 문서에서 데이터를 캐시하는 방법을 보여 줍니다. 이 코드에서는 Workbook.UnprotectDocument 메서드를 통해 보호를 해제하기 전에 현재 ProtectStructure 및 ProtectWindows 값을 저장하므로 Workbook.ProtectDocument 메서드에서 동일한 형식의 보호를 다시 적용할 수 있습니다.
<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);
}
코드 컴파일
프로젝트의 ThisWorkbook 클래스에 이 코드를 추가합니다. 이 코드에서는 암호가 securelyStoredPassword라는 필드에 저장되어 있다고 가정합니다.
참고 항목
작업
방법: Office 문서에서 프로그래밍 방식으로 데이터 소스 캐싱
개념
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2008년 7월 |
새 항목입니다. |
SP1 기능 변경 |