[說明]
指定儲存格內含特定文字就禁止列印,本範例是以學生基本資料為例,若儲存格C2內含「機密」、「不可洩漏」、「不可複印」的文字,當使用者按下列印的功能時,系統自動將列印的功能取消,並出現提醒視窗,反之則可直接列印。
[程式碼]
Private Sub Workbook_BeforePrint(Cancel As Boolean) '指定儲存格內含特定文字就禁止列印
If ActiveSheet.Name = "示範資料" Then '指定工作表名稱,可指定可不指定。
X = InStr(Range("C2"), "機密") '尋找儲存格內是否含有"機密"兩個字,若有則X的起始位置一定是大於0
Y = InStr(Range("C2"), "不可洩漏") '尋找儲存格內是否含有"不可洩漏"文字,若有則Y的起始位置一定是大於0
Z = InStr(Range("C2"), "不可列印") '尋找儲存格內是否含有"不可複印"兩個字,若有則Z的起始位置一定是大於0
P = X > 0 Or Y > 0 Or Z > 0 'P只是一個代碼,可自由命名,或依自己的程式碼內容自行調整。
If P = True Then
Cancel = True '取消目前所執行的動作,就是按下列印鈕後,在指令還沒丟到印表機時,就被這一行「取消」指令取消了。
MsgBox "列印功能已被禁止,因為所列印的內容涉及機密" '跳出訊息視窗
Else
Cancel = False '取消這個指令為False
End If
End If
End Sub
[特別說明]
- 本程式碼須寫在 ThisWorkbook裡的BeforePrint內
- 本範例使用的是InStr這個函數,主要是針對特定字串進行搜尋,若搜尋到則傳回特定字串在該字串的起始位置。
- 利用回傳的起始位置,結合取消列印的功能,就可達成指定儲存格內含特定文字就禁止列印的功能。
- 本範例只卡控了三組的字串為X、Y、Z,若想要再增加卡控的字串,可再自行增加,增加後記得再修改這行「P = X > 0 Or Y > 0 Or Z > 0」。
- 若想了解如何「關閉列印」的說明,可參考黑天使之前寫的 [VBA] 常用程式碼系列07-關閉活頁簿或某工作表的列印功能。
- 本範例是針對特定儲存格進行搜尋,若想針對大範圍的儲存格進行搜尋,可參考黑天使另一篇文章[VBA] 常用程式碼系列17-文章內含特定文字就禁止列印。
謝謝您閱讀了我的文章,若您喜歡我的文章,希望您幫我按個讚,也幫忙分享給需要的朋友或其他平台,謝謝。
文章標籤
全站熱搜
留言列表