iT邦幫忙

0

EXCEL 工作表索引標籤問題

  • 分享至 

  • xImage

請問 『工作表索引標籤』 目前用VB程式設定不顯示(關閉)工作表索引標籤 ,
若要顯示工作表索引標籤時, 其他人員無法從 EXCEL選項中勾選 『顯示工作表索引標籤』( 如下圖範例 )
只能有管理者權限( 輸入密碼) 才能開啟『工作表索引標籤』 ,
請各位VB高手協助能否提供VB程式供參考

ActiveWindow.DisplayWorkbookTabs = False ( 關閉)
ActiveWindow.DisplayWorkbookTabs = True  (開啟)
froce iT邦大師 1 級 ‧ 2024-01-30 09:18:21 檢舉
你可以用保護活頁簿->保護活頁簿結構 + 隱藏活頁簿 來達到保護活頁簿並且不讓人看隱藏的活頁簿的功能,不用這麼麻煩。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
rain_yu
iT邦研究生 5 級 ‧ 2024-01-30 08:45:35

要實現只有管理者權限才能開啟工作表索引標籤的功能,需要進一步的控制和安全設定。以下是一個示例程式碼,演示如何檢查使用者權限並要求密碼:

Sub ToggleWorkbookTabs()
    ' 檢查使用者權限
    If Not CheckAdminAccess() Then
        ' 若非管理者權限,要求密碼
        Dim password As String
        password = InputBox("請輸入管理者密碼:")
        
        ' 驗證密碼
        If password = "your_password" Then
            ' 開啟工作表索引標籤
            ActiveWindow.DisplayWorkbookTabs = True
        Else
            MsgBox "無效的密碼,無法開啟工作表索引標籤。"
        End If
    Else
        ' 若為管理者權限,開啟工作表索引標籤
        ActiveWindow.DisplayWorkbookTabs = True
    End If
End Sub

Function CheckAdminAccess() As Boolean
    ' 檢查使用者是否具有管理者權限
    ' 在此可以根據需要自行實作檢查邏輯
    ' 若使用Windows認證,可以使用以下程式碼
    ' Return My.User.IsInRole("Administrators")
    ' 若使用自訂的使用者權限系統,則需根據系統設計進行相應的檢查
    ' 假設此處直接回傳False,表示非管理者權限
    Return False
End Function

以下是一個示例程式碼,演示如何設置工作表保護和解鎖

Sub ProtectWorksheet()
    Dim password As String
    password = InputBox("請輸入工作表密碼:")

    ' 設置工作表保護
    ActiveSheet.Protect Password:=password, UserInterfaceOnly:=True

    ' 隱藏工作表索引標籤
    ActiveWindow.DisplayWorkbookTabs = False
End Sub

Sub UnprotectWorksheet()
    Dim password As String
    password = InputBox("請輸入工作表密碼:")

    ' 解鎖工作表
    ActiveSheet.Unprotect Password:=password

    ' 顯示工作表索引標籤
    ActiveWindow.DisplayWorkbookTabs = True
End Sub

在上述示例中,ProtectWorksheet子程序用於保護工作表並隱藏工作表索引標籤,而UnprotectWorksheet子程序用於解鎖工作表並顯示工作表索引標籤。使用這些子程序,你可以在需要時為工作表設置密碼保護並控制工作表的顯示。

看更多先前的回應...收起先前的回應...
Hey iT邦新手 2 級 ‧ 2024-01-30 09:06:16 檢舉

想問, 這個 your_password 只要開這個 vba 就可以看到, 對嗎?

rain_yu iT邦研究生 5 級 ‧ 2024-01-30 09:46:44 檢舉

your_password 是你可以自定義的

lkkchf iT邦新手 5 級 ‧ 2024-01-30 16:08:24 檢舉

我是剛入VB的初學者,
EXCEL檔VB程式若設定管理者權限密碼後,
從EXCEL選項中也無法勾選 『顯示工作表索引標籤』
以避免其他人員自行開啟工作表索引標籤 (只有管理者解除密碼才可)

剛用示例程式碼1, 出現編譯錯誤;語法錯誤
游標停在 Return False....
還請rain_yu大師指導!https://ithelp.ithome.com.tw/upload/images/20240130/20165197QERcOMVsWS.jpg

lkkchf iT邦新手 5 級 ‧ 2024-01-30 19:07:45 檢舉

前面問題可能敘述說明或表達時不是很明確 ,
茲截圖說明如下提供 給大師您參考 ~https://ithelp.ithome.com.tw/upload/images/20240130/20165197op432s2Hnx.jpg

rain_yu iT邦研究生 5 級 ‧ 2024-01-31 08:57:48 檢舉

直接貼上當然錯誤阿,註解只是方便你知道要寫甚麼而已,
你還是要將程式補上,如果你不懂你應該開始上網查寫法。
我已經把流程和註解給你了。

你至少要寫到一定程度,如果還是錯誤再來提出問題。

rain_yu iT邦研究生 5 級 ‧ 2024-01-31 11:15:15 檢舉

按照你得新邏輯,我大概整理了一下邏輯:
"
excel工作表頁籤,除首頁外預設全部隱藏,
首頁上要有按鈕 當點選按鈕時,跳出對話框詢問是否顯示工作表頁籤,選是後 需輸入密碼"1234" ,正確時顯示頁籤。
"
你再按照這方式寫看看有沒有符合需求。

  1. 首先,打開 Excel 文件並選擇要隱藏的工作表頁籤。右鍵點擊頁籤,選擇 "隱藏"。
  2. 在首頁上插入一個按鈕。選擇 "開發人員" 選項卡,然後選擇 "插入",選擇 "按鈕(Form Control)",並在首頁上繪製一個按鈕。
  3. 雙擊按鈕,進入 "按鈕編輯" 模式。在 "常規" 選項卡中,輸入按鈕的標籤,例如 "顯示頁籤"。
  4. 在 "事件" 選項卡中,點擊 "新建",然後選擇 "鏡像",這將打開 VBA 編輯器。
  5. 在 VBA 編輯器中,將以下代碼複製並粘貼到新建的 "按鈕_Click" 事件處理程序中:
Private Sub CommandButton1_Click()
    Dim password As String
    password = InputBox("請輸入密碼", "輸入密碼")
    
    If password = "1234" Then
        Sheets.Visible = True
    Else
        MsgBox "密碼不正確!"
    End If
End Sub

  1. 保存 VBA 代碼並關閉編輯器。
  2. 返回 Excel 文件,單擊按鈕。將彈出一個對話框要求輸入密碼。
  3. 輸入正確的密碼 "1234",然後按下確定。隱藏的工作表頁籤將會顯示出來。

這樣,當你點擊首頁上的按鈕並輸入正確的密碼時,隱藏的工作表頁籤將顯示出來。請確保在保存文件時啟用了宏,以便 VBA 代碼可以正常運行。

我要發表回答

立即登入回答