[說明]
指定儲存格內含特定文字就禁止列印,本範例是以學生基本資料為例,若儲存格C2內含「機密」、「不可洩漏」、「不可複印」的文字,當使用者按下列印的功能時,系統自動將列印的功能取消,並出現提醒視窗,反之則可直接列印。

image

image

 
[程式碼]
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-文章內含特定文字就禁止列印
 
謝謝您閱讀了我的文章,若您喜歡我的文章,希望您幫我按個讚,也幫忙分享給需要的朋友或其他平台,謝謝。
 
20180128 黑.png

arrow
arrow
    創作者介紹
    創作者 黑天使 的頭像
    黑天使

    問問蓮蓬頭

    黑天使 發表在 痞客邦 留言(0) 人氣()