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

image

image

 
[程式碼]
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-關閉活頁簿或某工作表的列印功能
 
謝謝您閱讀了我的文章,若您喜歡我的文章,希望您幫我按個讚,也幫忙分享給需要的朋友或其他平台,謝謝。
 
20180128 黑.png

arrow
arrow

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