共用方式為


WorksheetBase.Protect 方法

保護工作表,使工作表無法修改。

命名空間:  Microsoft.Office.Tools.Excel
組件:  Microsoft.Office.Tools.Excel.v4.0.Utilities (在 Microsoft.Office.Tools.Excel.v4.0.Utilities.dll 中)

語法

'宣告
Public Sub Protect ( _
    password As Object, _
    drawingObjects As Object, _
    contents As Object, _
    scenarios As Object, _
    userInterfaceOnly As Object, _
    allowFormattingCells As Object, _
    allowFormattingColumns As Object, _
    allowFormattingRows As Object, _
    allowInsertingColumns As Object, _
    allowInsertingRows As Object, _
    allowInsertingHyperlinks As Object, _
    allowDeletingColumns As Object, _
    allowDeletingRows As Object, _
    allowSorting As Object, _
    allowFiltering As Object, _
    allowUsingPivotTables As Object _
)
public void Protect(
    Object password,
    Object drawingObjects,
    Object contents,
    Object scenarios,
    Object userInterfaceOnly,
    Object allowFormattingCells,
    Object allowFormattingColumns,
    Object allowFormattingRows,
    Object allowInsertingColumns,
    Object allowInsertingRows,
    Object allowInsertingHyperlinks,
    Object allowDeletingColumns,
    Object allowDeletingRows,
    Object allowSorting,
    Object allowFiltering,
    Object allowUsingPivotTables
)

參數

  • password
    型別:System.Object
    工作表的密碼,區分大小寫。如果省略這個引數,無須使用密碼即可解除工作表的保護。否則,您必須指定密碼才能解除工作表的保護。如果忘記密碼,您將無法解除工作表的保護。將密碼清單和對應的文件名稱儲存在安全的地方,會是很好的做法。
  • drawingObjects
    型別:System.Object
    true 表示會保護圖案。預設值是 false。
  • contents
    型別:System.Object
    true 表示會保護鎖定儲存格的內容。預設值是 true。
  • scenarios
    型別:System.Object
    true 表示會保護分析藍本。預設值是 true。
  • userInterfaceOnly
    型別:System.Object
    true 表示會保護使用者介面,但不保護巨集。如果省略這個引數,則會同時保護巨集和使用者介面。
  • allowFormattingCells
    型別:System.Object
    true 表示使用者可以對受保護工作表上的任何儲存格設定格式。預設值是 false。
  • allowFormattingColumns
    型別:System.Object
    true 表示使用者可以對受保護工作表上的任何欄設定格式。預設值是 false。
  • allowFormattingRows
    型別:System.Object
    true 表示使用者可以對受保護工作表上的任何列設定格式。預設值是 false。
  • allowInsertingColumns
    型別:System.Object
    true 表示使用者可以在受保護的工作表上插入欄。預設值是 false。
  • allowInsertingRows
    型別:System.Object
    true 表示使用者可以在受保護的工作表上插入列。預設值是 false。
  • allowInsertingHyperlinks
    型別:System.Object
    true 表示使用者可以在工作表上插入超連結。預設值是 false。
  • allowDeletingColumns
    型別:System.Object
    true 表示使用者可以刪除受保護工作表上的欄,不過前提是在要刪除的欄中,每一個儲存格都未被鎖定。預設值是 false。
  • allowDeletingRows
    型別:System.Object
    true 表示使用者可以刪除受保護工作表上的列,不過前提是在要刪除的列中,每一個儲存格都未被鎖定。預設值是 false。
  • allowSorting
    型別:System.Object
    true 表示使用者可以在受保護的工作表上排序。排序範圍內的每一個儲存格都必須未被鎖定或保護。預設值是 false。
  • allowFiltering
    型別:System.Object
    true 表示使用者可以在受保護的工作表上設定篩選條件。使用者可以變更篩選條件,但無法啟用或停用自動篩選條件。使用者可以設定現有自動篩選條件的篩選條件。預設值是 false。
  • allowUsingPivotTables
    型別:System.Object
    true 表示使用者可以在受保護的工作表上使用樞紐分析表報表。預設值是 false。

備註

如果您套用這個方法並將 UserInterfaceOnly 引數設定為 true 然後儲存活頁簿,則當您再次開啟活頁簿時,整份工作表 (不只是介面) 會被完全保護。 如果要在活頁簿開啟後重新啟用使用者介面保護,您必須再次套用這個方法,並將這個方法的 UserInterfaceOnly 設定為 true。

您可以輸入密碼,變更受到保護的工作表。 此外,您也可以解除工作表的保護、進行必要的變更,然後再設定工作表的保護。

注意事項注意事項

「未被保護」表示儲存格可能是被鎖定的 ([儲存格格式] 對話方塊),但包含在 [允許使用者編輯範圍] 對話方塊中所定義的範圍內,而且使用者是利用密碼解除範圍的保護,或透過 NT 權限進行驗證。

選擇性參數

如需選擇性參數的詳細資訊,請參閱Office 方案中的選擇性參數

範例

下列程式碼範例會取得 ProtectContents 屬性的值,判斷工作表的內容是否受到保護。 如果內容未受到保護,就會呼叫 Protect 方法,並將這個方法的 Contents 參數設定為 true,內容就會受到保護。

這是示範文件層級自訂的範例。

Private Sub ProtectCellContents()
    If Not Me.ProtectContents Then
        If DialogResult.Yes = MessageBox.Show("Cell contents in this " & _
            "worksheet are not protected. Protect cell contents?", "Example", _
            MessageBoxButtons.YesNo) Then

            ' Protect cell contents, but do not change any 
            ' other protection type.
            Me.Protect(DrawingObjects:=Me.ProtectDrawingObjects, _
                Contents:=True, Scenarios:=Me.ProtectScenarios, _
                UserInterfaceOnly:=Me.ProtectionMode, _
                AllowFormattingCells:=Me.Protection.AllowFormattingCells, _
                AllowFormattingColumns:=Me.Protection.AllowFormattingColumns, _
                AllowFormattingRows:=Me.Protection.AllowFormattingRows, _
                AllowInsertingColumns:=Me.Protection.AllowInsertingColumns, _
                AllowInsertingRows:=Me.Protection.AllowInsertingRows, _
                AllowInsertingHyperlinks:=Me.Protection.AllowInsertingHyperlinks, _
                AllowDeletingColumns:=Me.Protection.AllowDeletingColumns, _
                AllowDeletingRows:=Me.Protection.AllowDeletingRows, _
                AllowSorting:=Me.Protection.AllowSorting, _
                AllowFiltering:=Me.Protection.AllowFiltering, _
                AllowUsingPivotTables:=Me.Protection.AllowUsingPivotTables)
        End If
    End If
End Sub
private void ProtectCellContents()
{
    if (!this.ProtectContents)
    {
        if (DialogResult.Yes == MessageBox.Show("Cell contents in this " +
            "worksheet are not protected. Protect cell contents?", "Example", 
            MessageBoxButtons.YesNo))
        {
            // Protect cell contents, but do not change any 
            // other protection type.
            this.Protect(missing, this.ProtectDrawingObjects,
                true, this.ProtectScenarios, this.ProtectionMode, 
                this.Protection.AllowFormattingCells,
                this.Protection.AllowFormattingColumns,
                this.Protection.AllowFormattingRows,
                this.Protection.AllowInsertingColumns,
                this.Protection.AllowInsertingRows,
                this.Protection.AllowInsertingHyperlinks,
                this.Protection.AllowDeletingColumns,
                this.Protection.AllowDeletingRows,
                this.Protection.AllowSorting,
                this.Protection.AllowFiltering,
                this.Protection.AllowUsingPivotTables);
        }
    }
}

.NET Framework 安全性

請參閱

參考

WorksheetBase 類別

Microsoft.Office.Tools.Excel 命名空間