[說明]
指定文件的大範圍儲存格進行搜尋,若儲存格內含特定文字就禁止列印,本範例是以學生基本資料為例,若欄位A~Z內含「不可洩漏」的文字,當使用者按下列印的功能時,系統自動將列印的功能取消,並出現提醒視窗,反之則可直接列印。
[程式碼]
Private Sub Workbook_BeforePrint(Cancel As Boolean) '文章內含特定文字就禁止列印
If ActiveSheet.Name = "示範資料" Then '指定工作表名稱,可指定可不指定。
Search = "不可洩漏" 'Search只是一個代碼,可自由命名。
Columns("A:Z").Select '預計要搜尋的範圍,此程式碼為選取A~Z欄,可視文件範圍自行調整。
Set FindSearch = Selection.Find(What:=Search, LookAt:=xlPart) 'LookAt:=xlPart,為模糊搜尋,若要絕對搜尋則改為LooKAt:=xlWhole。
If FindSearch Is Nothing Then '假如搜尋不到時
Cancel = False '取消這個指令為False
Else
Cancel = True '取消目前所執行的動作,就是按下列印鈕後,在指令還沒丟到印表機時,就被這一行「取消」指令取消了。
MsgBox "列印功能已被禁止,因為所列印的內容涉及機密" '跳出訊息視窗。
End If
End If
End Sub
[特別說明]
- 本程式碼須寫在 ThisWorkbook裡的BeforePrint內
- 本範例使用的是Find這個函數,可針對大範圍的儲存格進行特定字串的搜尋,若搜尋到特定字串則取消列印,反之則列印。
- 本範例只設定了一組特定字串,若想輸入多組字串進行卡控,可在「 If FindSearch Is Nothing Then」後再進行衍伸。
- 承上再將Search重新設定新字串,並在跑一次搜尋即可,以此類推。
- 若想了解如何「關閉列印」的說明,可參考黑天使之前寫的[VBA] 常用程式碼系列07-關閉活頁簿或某工作表的列印功能。
謝謝您閱讀了我的文章,若您喜歡我的文章,希望您幫我按個讚,也幫忙分享給需要的朋友或其他平台,謝謝。

文章標籤
全站熱搜