
收到!各位打火弟兄注意,我是今天的資料分析兼 AI 戰術教官。裝備檢查完畢,全部給我集中精神進入狀況!
今天的救援任務是推進 「Day 14:AI + VBA 風控自動化巨集(4 階段自動化進化)」!
在銀行與金融風控的火場裡,如果風控人員每天還在手動拉表格、人工用螢光筆塗刷高風險帳戶、再手動另存 PDF 報表,這就跟拿著水桶進火場滅火一樣效率低下且極易出錯!一旦手滑漏標了一個高風險帳戶,或是匯出 PDF 時格式掉頁,合規審計防線就會出現重大漏洞。
以下依照我們的「救災標準作業程序 (S.O.P)」進行全方位的實務拆解與自動化巨集實作:
在風控自動化的數據火場中,缺乏階層認知與手動重複操作是引發內部失火的致命盲點:
Run-time error '1004'),會直接導致分行日終結算與風控審計作業瞬間停擺!為了建立鋼鐵般的風控自動化防線,我們採用 「AI + Excel 自動化 4 階段進化戰術」,並透過 VBA 實現「高風險警示與 PDF 自動匯出」:
XLOOKUP, 巢狀 IF, TEXT),處理基礎欄位計算與格式轉換,擺脫手動公式編寫。我們準備一張來自授信與風控系統的 Risk_Audit_List 工作表(Schema 如下):
A 欄:Customer_ID(客戶代號)B 欄:Company_Name(企業名稱)C 欄:DTI_Ratio(負債比率,數值型態如 0.65 代表 65%)D 欄:Credit_Score(信用分數,300-800)E 欄:Overdue_Days(逾期天數)F 欄:Risk_Level(預期風險等級:High, Medium, Low)# Role (System Prompt)
你是一位金融機構資訊風控與 VBA 自動化專家。
# Task Objective
請幫我撰寫一段 Excel VBA 巨集程式碼,能夠自動掃描 `Risk_Audit_List` 工作表中的授信戶資料,依據風險條件進行儲存格背景自動著色,並將高風險警示結果自動匯出為一份標準格式的 PDF 合規審計報告。
# Rules & Logic Constraints
1. **風險標示規則**:
- **紅色背景(高風險/CRITICAL)**:當 DTI (C欄) > 60% (0.6) 或是 逾期天數 (E欄) > 30 天。整列填入淺紅色 (RGB: 255, 204, 204),文字加粗。
- **黃色背景(中風險/WARNING)**:當 DTI (C欄) 介於 40%~60% 或是 信用分數 (D欄) < 600。整列填入淺黃色 (RGB: 255, 255, 204)。
2. **PDF 合規審計報告導出**:
- 自動將處理完畢的工作表另存為 PDF 檔案。
- 檔名命名規範:`風控合規審計報告_YYYYMMDD.pdf`。
- 儲存路徑為當前活頁簿所在資料夾 (`ThisWorkbook.Path`)。
3. **程式碼品質**:需包含 `ScreenUpdating = False` 效能優化與錯誤處理機制 (`On Error GoTo ErrorHandler`)。
Sub Audit_Risk_And_Export_PDF()
' =========================================================================
' 巨集名稱: Audit_Risk_And_Export_PDF
' 功能說明: 自動標示高風險帳戶(紅/黃背景)並導出合規 PDF 審計報告
' 適用對象: 風控指揮中心與內部稽核小組
' =========================================================================
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim dtiVal As Double
Dim creditScore As Long
Dim overdueDays As Long
Dim pdfPath As String
Dim fileName As String
' 1. 效能優化:關閉螢幕更新與警告訊息,加速執行
On Error GoTo ErrorHandler
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set ws = ThisWorkbook.Sheets("Risk_Audit_List")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 如果只有標題列沒有資料,直接結束
If lastRow < 2 Then
MsgBox "未發現可審核之客戶數據!", vbExclamation, "風控警告"
Exit Sub
End If
' 2. 清除舊有格式 (保留標題列)
ws.Range("A2:F" & lastRow).Interior.ColorIndex = xlNone
ws.Range("A2:F" & lastRow).Font.Bold = False
' 3. 逐列掃描並填入風險警示色彩
For i = 2 To lastRow
' 提取欄位值 (C欄:DTI, D欄:信用分數, E欄:逾期天數)
dtiVal = CDbl(ws.Cells(i, 3).Value)
creditScore = CLng(ws.Cells(i, 4).Value)
overdueDays = CLng(ws.Cells(i, 5).Value)
' 高風險判定(紅色警戒):DTI > 60% 或 逾期天數 > 30 天
If dtiVal > 0.6 Or overdueDays > 30 Then
ws.Range("A" & i & ":F" & i).Interior.Color = RGB(255, 204, 204) ' 淺紅色
ws.Range("A" & i & ":F" & i).Font.Bold = True
ws.Cells(i, 6).Value = "High Risk"
' 中風險判定(黃色預警):DTI 40%~60% 或 信用分數 < 600
ElseIf (dtiVal >= 0.4 And dtiVal <= 0.6) Or creditScore < 600 Then
ws.Range("A" & i & ":F" & i).Interior.Color = RGB(255, 255, 204) ' 淺黃色
ws.Cells(i, 6).Value = "Medium Risk"
' 低風險(無背景色)
Else
ws.Cells(i, 6).Value = "Low Risk"
End If
Next i
' 4. 自動導出合規 PDF 審計報告
fileName = "風控合規審計報告_" & Format(Now(), "YYYYMMDD_HHMMSS") & ".pdf"
pdfPath = ThisWorkbook.Path & "\" & fileName
' 設定列印頁面配置 (橫向、自動調整為單頁寬度)
With ws.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = False
.Zoom = False
End With
' 執行 PDF 導出
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=pdfPath, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
' 5. 恢復系統設定並向指揮中心回報成功
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "【風控自動化成功】" & vbCrLf & _
"1. 高/中風險帳戶已自動著色完成。" & vbCrLf & _
"2. PDF 合規審計報告已導出至:" & vbCrLf & pdfPath, _
vbInformation, "風控指揮中心通知"
Exit Sub
ErrorHandler:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "執行過程發生異常錯誤!錯誤代碼: " & Err.Number & vbCrLf & "描述: " & Err.Description, _
vbCritical, "風控系統異常"
End Sub
「自動化進化分四階,VBA 巨集把關最前線;AI 撰寫程式碼,人類品管決策不打折!」