一、前期準備
1.1 注冊并獲取 API 密鑰
- 訪問 DeepSeek 平臺:
- 打開瀏覽器,訪問 DeepSeek 官方網站(或您使用的相應平臺)。
- 注冊并登錄您的賬戶。
- 創建 API 密鑰:
- 在用戶控制面板中,找到“API Keys”或“API 管理”選項。
- 點擊“創建 API Key”按鈕,填寫應用名稱(例如 “Word 文案助手”)。
- 系統將生成類似
sk-xxxxxxxxxxxxxxxxxxxx
格式的密鑰,請將它復制并妥善保存,后續在 VBA 代碼中需要使用此密鑰。
二、配置 Word 環境
2.1 啟用開發工具選項卡
- 在 Word 中點擊【文件】>【選項】。
- 在“Word 選項”對話框中,選擇【自定義功能區】。
- 在右側列表中勾選【開發工具】,然后點擊【確定】。
這樣在功能區上就會顯示“開發工具”選項卡。
2.2 啟用宏安全設置
- 在“開發工具”選項卡內,點擊【宏安全性】或【信任中心】。
- 進入“信任中心設置”,在【宏設置】中選擇“啟用所有宏”并可勾選“信任對 VBA 工程對象模型的訪問”。
注意: 啟用宏可能有安全風險,請在受信任的環境下運行。
三、編寫 VBA 宏代碼
3.1 打開 VBA 編輯器并插入模塊
- 在“開發工具”選項卡中點擊【Visual Basic】按鈕(或使用快捷鍵 Alt+F11)。
- 在 VBA 編輯器中,右擊當前工程(如 “Normal” 或當前文檔名稱),選擇【插入】>【模塊】。
建議將此模塊命名為 “DeepSeekModule”。
3.2 粘貼下面的完整代碼
代碼包含兩個通用函數用于調用 DeepSeek API 的不同模型(如 deepseek-chat、deepseek-reasoner),以及兩個宏分別處理用戶選中文本并將結果插入文檔。代碼中每一部分均有詳細注釋說明各命令含義。
Option Explicit'==========================
'【公共 API 調用函數】
'==========================
' 此函數用于向 DeepSeek API 發送請求,參數:
' api_key —— 您的 API 密鑰
' inputText —— 需要處理的文本(用戶選中文本)
' modelName —— 調用的模型名稱,如 "deepseek-chat" 或 "deepseek-reasoner"
' 返回 API 的響應文本(JSON 格式),若出錯則返回錯誤信息。
Private Function CallDeepSeekAPI(api_key As String, inputText As String, modelName As String) As StringDim API As StringDim SendTxt As StringDim Http As ObjectDim status_code As IntegerDim response As String' API 請求地址API = "https://api.deepseek.com/chat/completions"' 構建請求體(JSON 格式)' 注:系統角色提示設定為“你是 Word 文案助手”SendTxt = "{""model"": """ & modelName & """, " & _"""messages"": [{" & _"""role"":""system"", ""content"":""你是 Word 文案助手""}," & _" {""role"":""user"", ""content"":""" & inputText & """}" & _"], ""stream"": false}"' 使用 MSXML2.XMLHTTP 對象發送 HTTP 請求On Error GoTo ErrHandlerSet Http = CreateObject("MSXML2.XMLHTTP")With Http.Open "POST", API, False.setRequestHeader "Content-Type", "application/json".setRequestHeader "Authorization", "Bearer " & api_key.Send SendTxtstatus_code = .Statusresponse = .responseTextEnd With' 根據響應狀態返回結果或錯誤信息If status_code = 200 ThenCallDeepSeekAPI = responseElseCallDeepSeekAPI = "Error: " & status_code & " - " & responseEnd IfExitPoint:Set Http = NothingExit FunctionErrHandler:CallDeepSeekAPI = "Error: " & Err.Number & " - " & Err.DescriptionResume ExitPoint
End Function'===============================
'【封裝具體模型的調用函數】
'===============================
' 調用 deepseek-chat 模型
Function CallDeepSeekChatAPI(api_key As String, inputText As String) As StringCallDeepSeekChatAPI = CallDeepSeekAPI(api_key, inputText, "deepseek-chat")
End Function' 調用 deepseek-reasoner 模型
Function CallDeepSeekReasonerAPI(api_key As String, inputText As String) As StringCallDeepSeekReasonerAPI = CallDeepSeekAPI(api_key, inputText, "deepseek-reasoner")
End Function'=====================================
'【主宏:DeepSeek 使用 deepseek-chat 模型】
'=====================================
Sub DeepSeekChat()Dim api_key As StringDim inputText As StringDim response As StringDim regex As ObjectDim matches As ObjectDim originalSelection As Range' ============================'【設置 API 密鑰】' ============================' 請替換下面的 "在此處替換為您的 API Key" 為您獲取的 API 密鑰api_key = "在此處替換為您的 API Key"' 檢查 API 密鑰及是否選中有效文本If api_key = "" ThenMsgBox "Please enter the API key.", vbCriticalExit SubElseIf Selection.Type <> wdSelectionNormal ThenMsgBox "請選擇文本.", vbExclamationExit SubEnd If' ============================'【保存選中區域】' ============================' 保存當前選區,以便后續恢復光標位置Set originalSelection = Selection.Range.Duplicate' ============================'【獲取并處理選中文本】' ============================inputText = Selection.Text' 對特殊字符進行轉義處理inputText = Replace(inputText, "\", "\\")inputText = Replace(inputText, vbCrLf, "")inputText = Replace(inputText, vbCr, "")inputText = Replace(inputText, vbLf, "")inputText = Replace(inputText, Chr(34), "\""")inputText = Replace(inputText, Chr(39), "\'")' ============================'【調用 API 接口】' ============================response = CallDeepSeekChatAPI(api_key, inputText)' 檢查返回信息,如果返回 “Error” 開頭,則說明調用失敗If Left(response, 5) = "Error" ThenMsgBox response, vbCriticalExit SubEnd If' ============================'【解析 API 返回的 JSON 數據】' ============================' 使用正則表達式提取 JSON 中 "content" 字段的值Set regex = CreateObject("VBScript.RegExp")With regex.Global = True.MultiLine = True.IgnoreCase = False.Pattern = """content"":""(.*?)"""End WithSet matches = regex.Execute(response)If matches.Count > 0 Thenresponse = matches(0).SubMatches(0)' 將換行符轉換成 Word 支持的換行標識response = Replace(response, "\n", vbCrLf)' 若有特殊符號,根據需要去除,例如 * 或 #response = Replace(response, "*", "")response = Replace(response, "#", "")' ============================'【將返回內容插入文檔】' ============================' 將光標移動到當前選區末尾,插入新段落并輸出生成文本Selection.Collapse Direction:=wdCollapseEndSelection.TypeParagraphSelection.TypeText Text:=response' 恢復原始選區(可選)originalSelection.SelectElseMsgBox "Failed to parse API response.", vbExclamationEnd If
End Sub'=====================================
'【主宏:DeepSeek 使用 deepseek-reasoner 模型】
'=====================================
Sub DeepSeekReasoner()Dim api_key As StringDim inputText As StringDim response As StringDim regex As ObjectDim matches As ObjectDim originalSelection As Range' ============================'【設置 API 密鑰】' ============================' 請替換下面的 "在此處替換為您的 API Key" 為您的 API 密鑰api_key = "在此處替換為您的 API Key"' 檢查 API 密鑰及是否選中有效文本If api_key = "" ThenMsgBox "Please enter the API key.", vbCriticalExit SubElseIf Selection.Type <> wdSelectionNormal ThenMsgBox "請選擇文本.", vbExclamationExit SubEnd If' ============================'【保存選中區域】' ============================Set originalSelection = Selection.Range.Duplicate' ============================'【獲取并處理選中文本】' ============================inputText = Selection.TextinputText = Replace(inputText, "\", "\\")inputText = Replace(inputText, vbCrLf, "")inputText = Replace(inputText, vbCr, "")inputText = Replace(inputText, vbLf, "")inputText = Replace(inputText, Chr(34), "\""")inputText = Replace(inputText, Chr(39), "\'")' ============================'【調用 API 接口】' ============================response = CallDeepSeekReasonerAPI(api_key, inputText)' 檢查返回信息,如果返回 “Error” 開頭,則說明調用失敗If Left(response, 5) = "Error" ThenMsgBox response, vbCriticalExit SubEnd If' ============================'【解析 API 返回的 JSON 數據】' ============================Set regex = CreateObject("VBScript.RegExp")With regex.Global = True.MultiLine = True.IgnoreCase = False.Pattern = """content"":""(.*?)"""End WithSet matches = regex.Execute(response)If matches.Count > 0 Thenresponse = matches(0).SubMatches(0)response = Replace(response, "\n", vbCrLf)response = Replace(response, "*", "")response = Replace(response, "#", "")' ============================'【將返回內容插入文檔】' ============================Selection.Collapse Direction:=wdCollapseEndSelection.TypeParagraphSelection.TypeText Text:=response' 恢復原選區(可選)originalSelection.SelectElseMsgBox "Failed to parse API response.", vbExclamationEnd If
End Sub
3.3 保存代碼
- 完成粘貼后,保存 VBA 代碼,關閉 VBA 編輯器。
四、將宏添加到 Word 自定義功能區(按鈕)
為了方便使用,我們可以將寫好的宏添加到 Word 的功能區中,具體步驟如下:
- 打開 Word 的“選項”界面:
點擊【文件】>【選項】。 - 自定義功能區:
選擇【自定義功能區】,在右側列表中新建一個選項卡(例如命名為 “DeepSeek 助手”)或在“開發工具”中添加一個新分組(例如 “DeepSeek 工具”)。 - 添加宏命令:
在左側選擇“宏”類別,找到剛才創建的宏(如DeepSeekChat
和DeepSeekReasoner
),將其添加到新建的分組中。你可對按鈕名稱進行修改,并設置圖標以便于識別。 - 點擊“確定”:
自定義完成后,在功能區中即可看到新添加的按鈕,點擊即可快速觸發相應的宏命令。
五、使用說明與調試
5.1 測試調用 DeepSeek
- 準備測試文本:
- 在 Word 文檔中輸入一段文本,例如:“請優化下面這段介紹語…”或其他待處理文本。
- 用鼠標選中這段文本。
- 運行宏命令:
- 可以通過“開發工具”選項卡中點擊“宏”按鈕,選擇
DeepSeekChat
(或DeepSeekReasoner
)后點擊“運行”。 - 或者直接點擊自定義功能區中的按鈕執行。
- 可以通過“開發工具”選項卡中點擊“宏”按鈕,選擇
- 查看輸出結果:
- 程序會調用 DeepSeek API,對選中文本進行處理(如改寫、潤色或續寫)。
- 處理結果會以新段落的形式插入到選中文本之后,同時原選區可選性恢復。
5.2 錯誤排查
- API Key 檢查:
確保在代碼中已替換為您真實的 API 密鑰,否則程序會彈出提示要求輸入 API Key。 - 網絡連接:
確保計算機可以正常訪問https://api.deepseek.com
,防火墻或代理設置不影響 HTTP 請求。 - 宏安全設置:
若程序提示“請選擇文本”或不能運行宏,請檢查當前是否有有效文本選中,以及宏安全設置是否正確配置。
5.3 進階擴展建議
- 多模型選擇:
根據需求,可以增加界面選擇不同模型(如“文案助手”與“推理分析”)對應的宏,分別調用CallDeepSeekChatAPI
或CallDeepSeekReasonerAPI
。 - JSON 解析優化:
對于復雜返回數據,建議引入 VBA JSON 庫(例如 VBA-JSON),提高解析正確率。 - 日志記錄:
添加日志記錄功能(例如寫入文本文件),便于調試和后續維護。
總結
本文詳細介紹了如何將 DeepSeek 接入到 Microsoft Word 中的完整流程。通過以下步驟實現:
- API 密鑰獲取和環境配置:注冊 DeepSeek 并獲取 API Key;在 Word 中啟用開發工具和宏設置。
- VBA 代碼編寫:將深度處理 API 封裝為公共函數,并分別編寫調用 deepseek-chat 和 deepseek-reasoner 模型的宏。代碼中詳細注釋了每一步的作用。
- 自定義功能區集成:將編寫好的宏添加到 Word 的自定義選項卡中,通過按鈕輕松運行。
- 測試與調試:選中待處理文本,運行宏,查看處理結果,針對錯誤進行排查。
通過此完整教程,您可以輕松將 DeepSeek 的智能功能集成到 Word 文檔中,實現高效自動化寫作、潤色、翻譯等功能。如果后續有更多需求或需要改進,您可以基于該基礎代碼進行進一步擴展和優化。