VBA腳本將DeepSeek嵌入Word中教程

一、獲取API-Key

目前我們可以直接只用官網的API來實現,申請這一步是關鍵

圖片

也可以直接訪問官網的API平臺:https://platform.deepseek.com/ ,沒注冊的注冊完登錄一下,我們點擊到左側菜單的“APIKeys”按鈕,然后點擊右側的“創建API Key”

圖片

在彈出的對話框中備注一下,以防忘記,點擊創建,這樣我們就獲得了一個API Key了。記得先將密鑰復制存放一下。一旦關閉就無法復制,只能刪了重新創建。

圖片

二:WORD開啟宏命令

要將DeepSeek集成到Word中必須先使用到“宏”,但是Office默認是禁用宏的,需先開啟一下宏命令的功能。

  1. 啟動Word應用程序。

  2. 在Word界面的頂部,找到并點擊“文件”菜單。

  3. 在下拉菜單中,選擇“選項”按鈕以進入設置界面。

  4. 在彈出的“Word選項”窗口中,找到并點擊左側的“信任中心”設置。

  5. 在“信任中心”設置中,點擊“信任中心設置...”按鈕。

  6. 在“信任中心”對話框中,切換到“宏設置”選項卡。

  7. 在這里,您可以選擇以下選項之一:

    • “禁用所有宏,帶通知”:所有宏都將被禁用,但會通知您宏的存在。

    • “禁用所有宏,不通知”:所有宏都將被禁用,且不會通知您。

    • “啟用所有宏”:所有宏都將被允許運行,但請注意,這可能會帶來安全風險。

    • “禁用所有宏,除了簽名的宏”:所有未簽名的宏都將被禁用,但簽名的宏將被允許運行。

  8. 根據您的需求選擇合適的宏設置,然后點擊“確定”保存設置。

  9. 再次點擊“確定”關閉“信任中心”對話框,然后關閉“Word選項”窗口。

完成以上步驟后,您就可以在Word中使用宏功能了。如果您需要啟用特定的宏,確保選擇了允許宏運行的設置,并確保宏是來自可信的來源。啟用宏后,您可以按照DeepSeek的集成指南,繼續進行DeepSeek與Word的集成操作。

圖片

三、啟動開發工具

?一般Word因為禁用了“宏命令”,對應的“開發工具”菜單沒開啟,我們需要開啟一下。按如下操作啟動 “開發工具”菜單:“文件”——“選項”——“自定義功能”,勾選啟動“開發工具”菜單

圖片

四、創建VB宏命令

點擊“開發工具”下的Visual Basic編輯器

圖片

進入后點擊菜單中的“插入”-“模塊”,命名為“DeepSeek”

圖片

如下代碼復制粘貼到模塊中。

Function?CallDeepSeekAPI(api_key As?String, inputText As?String) As?String
Dim API As?String
Dim SendTxt As?String
Dim Http As?Object
Dim status_code As Integer
Dim response As?String
API =?"https://api.deepseek.com/chat/completions"
SendTxt =?"{""model"": ""deepseek-reasoner"", ""messages"": [{""role"":""system"", ""content"":""你是一個樂于助人的AI助手,請根據用戶的問題給出詳細的解答。""}, {""role"":""user"", ""content"":"""?& inputText &?"""}], ""stream"": false}"

Set?Http = CreateObject("MSXML2.XMLHTTP")
With Http
? ? .Open?"POST", API, False
? ? .setRequestHeader?"Content-Type",?"application/json"
? ? .setRequestHeader?"Authorization",?"Bearer "?& api_key
? ? .send SendTxt
? ? status_code = .Status
? ? response = .responseText
End With

' 彈出窗口顯示 API 響應(調試用)

'?MsgBox?"API Response: "?& response, vbInformation,?"Debug Info"

If status_code =?200?Then
? ? CallDeepSeekAPI = response
Else
? ? CallDeepSeekAPI =?"Error: "?& status_code &?" - "?& response
End If

Set?Http = Nothing
End?Function
Sub DeepSeekR1()
Dim api_key As?String
Dim inputText As?String
Dim response As?String
Dim regex As?Object
Dim reasoningRegex As?Object
Dim contentRegex As?Object
Dim matches As?Object
Dim reasoningMatches As?Object
Dim originalSelection As?Object
Dim reasoningContent As?String
Dim finalContent As?String
api_key =?"替換為你的api key"
If api_key =?""?Then
? ? MsgBox?"Please enter the API key."
? ? Exit Sub
ElseIf Selection.Type <> wdSelectionNormal Then
? ? MsgBox?"Please select text."
? ? Exit Sub
End If

' 保存原始選中的文本
Set originalSelection = Selection.Range.Duplicate

inputText = Replace(Replace(Replace(Replace(Replace(Selection.text, "\", "\\"), vbCrLf, ""), vbCr, ""), vbLf, ""), Chr(34), "\""")
response = CallDeepSeekAPI(api_key, inputText)

If Left(response, 5) <> "Error" Then
? ? '?創建正則表達式對象來分別匹配推理內容和最終回答
? ??Set?reasoningRegex = CreateObject("VBScript.RegExp")
? ? With reasoningRegex
? ? ? ? .Global = True
? ? ? ? .MultiLine = True
? ? ? ? .IgnoreCase = False
? ? ? ? .Pattern =?"""reasoning_content"":""(.*?)"""
? ? End With
? ??
? ??Set?contentRegex = CreateObject("VBScript.RegExp")
? ? With contentRegex
? ? ? ? .Global = True
? ? ? ? .MultiLine = True
? ? ? ? .IgnoreCase = False
? ? ? ? .Pattern =?"""content"":""(.*?)"""
? ? End With

? ??' 提取推理內容
? ? Set reasoningMatches = reasoningRegex.Execute(response)
? ? If reasoningMatches.Count > 0 Then
? ? ? ? reasoningContent = reasoningMatches(0).SubMatches(0)
? ? ? ? reasoningContent = Replace(reasoningContent, "\n\n", vbNewLine)
? ? ? ? reasoningContent = Replace(reasoningContent, "\n", vbNewLine)
? ? ? ? reasoningContent = Replace(Replace(reasoningContent, """", Chr(34)), """", Chr(34))
? ? End If

? ? '?提取最終回答
? ??Set?matches = contentRegex.Execute(response)
? ? If matches.Count >?0?Then
? ? ? ? finalContent = matches(0).SubMatches(0)
? ? ? ? finalContent = Replace(finalContent,?"\n\n", vbNewLine)
? ? ? ? finalContent = Replace(finalContent,?"\n", vbNewLine)
? ? ? ? finalContent = Replace(Replace(finalContent,?"""", Chr(34)),?"""", Chr(34))

? ? ? ??' 取消選中原始文本
? ? ? ? Selection.Collapse Direction:=wdCollapseEnd

? ? ? ? '?插入推理過程(如果存在)
? ? ? ? If Len(reasoningContent) >?0?Then
? ? ? ? ? ? Selection.TypeParagraph
? ? ? ? ? ? Selection.TypeText?"推理過程:"
? ? ? ? ? ? Selection.TypeParagraph
? ? ? ? ? ? Selection.TypeText reasoningContent
? ? ? ? ? ? Selection.TypeParagraph
? ? ? ? ? ? Selection.TypeText?"最終回答:"
? ? ? ? ? ? Selection.TypeParagraph
? ? ? ? End If

? ? ? ??' 插入最終回答
? ? ? ? Selection.TypeText finalContent

? ? ? ? '?將光標移回原來選中文本的末尾
? ? ? ? originalSelection.Select
? ? Else
? ? ? ? MsgBox?"Failed to parse API response.", vbExclamation
? ? End If
Else
? ? MsgBox response, vbCritical
End If
End Sub

上述代碼這替換為你自己的Key:

圖片

保存VB腳本并關閉窗口,再點擊“文件”-“選項”-“自定義功能區”,我們選擇這里的宏,就可以看到我們剛才創建的宏命令了。

圖片

五、新建宏命令組

我們在右側繼續右鍵“開發工具”,在它下面新建一個組。

圖片

然后將這個組重命名為“AI”或者你喜歡的名稱,再選一個你喜歡的圖標。

圖片

將上面的宏添加到這個下面就可完成。

圖片

點擊“確定”,我們就可以在菜單欄的“開發工具”中看到這個按鈕了。

圖片

我們在下面的Word文檔中測試下這個功能,在Word里輸入段文字,點擊這個按鈕。等待一會兒(DeepSeek R1在推理),就會出現DeepSeek的思考過程和最終結果

圖片

這樣以后我們要寫什么內容,要檢查錯別字,翻譯、文章、方案等等需求都可以直接在Word里完成。

六、另存為模板

?由于上面的操作只是針對當前這個Word文檔,如果想每次打開都有這個腳本存在,我們只需要將這個Word文檔另存為模板

圖片

這樣下次打開文檔還是會附帶這個宏命令,就這樣整個操作完成了,

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/71614.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/71614.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/71614.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DeepSeek接入Siri(已升級支持蘋果手表)完整版硅基流動DeepSeek-R1部署

DeepSeek接入Siri&#xff08;已升級支持蘋果手表&#xff09;完整版硅基流動DeepSeek-R1部署 **DeepSeek** 是一款專注于深度學習和人工智能的工具或平臺&#xff0c;通常與人工智能、機器學習、自動化分析等領域有關。它的主要功能可能包括&#xff1a;深度學習模型搜索&…

網站搭建基本流程

需求分析&#xff1a; 實現網站搭建的過程&#xff1a;首先進行網站的需求性分析 網站可分為前臺系統和后臺系統&#xff0c;由不同的功能拆分為不同的模塊 如下是一個電商網站可以拆分出的模塊&#xff1a; 在編寫代碼前&#xff0c;我們要先對網站進行架構&#xff0c;通過…

解決elementUi el-select 響應式不生效的問題

情況一,字段類型不匹配 考慮option的value值的字段類型是否和api返回的字段類型一致&#xff0c;如果一個為字符串一個為數字類型是無法匹配上的 <template> <div><el-select v-model"value" size"large"style"width: 240px"&…

QT實戰-基于QWidget實現的異形tip窗口

本文主要介紹了qt中,基于QWidget實現異形tip窗口的幾種實現方式,話不多說,先上圖, 1.使用QPainter和QPainterPath實現 代碼:tipwnd1.h #ifndef TIPWND1_H #define TIPWND1_H#include <QWidget>class TipWnd1 : public QWidget {Q_OBJECTQ_PROPERTY(QColor my_border…

【C++篇】樹影搖曳,旋轉無聲:探尋AVL樹的平衡之道

文章目錄 從結構到操作&#xff1a;手撕AVL樹的實現一、AVL樹介紹1.1 什么是AVL樹1.2 平衡因子的定義1.3 平衡的意義1.4 AVL樹的操作 二、AVL樹的節點結構2.1 節點結構的定義&#xff1a; 三、插入操作3.1 插入操作概述3.2 步驟1&#xff1a;按二叉查找樹規則插入節點3.3 步驟2…

么是靜態住宅IP,跨境電商為什么需要靜態住宅IP

靜態住宅IP是指直接分配給一臺屬于私人住宅網絡的設備的固定IP地址&#xff0c;這種地址不會頻繁更改。它們作為代理IP&#xff0c;使使用者能夠通過這些代理服務器進行網絡訪問&#xff0c;而對外顯示的則是該住宅的IP地址。由于這些IP地址屬于真實的住宅或個人&#xff0c;并…

清華大學deepseek教程第四版 DeepSeek+DeepResearch 讓科研像聊天一樣簡單(附下載)

deepseek使用教程系列 DeepSeekDeepResearch 讓科研像聊天一樣簡單(附下載) https://pan.baidu.com/s/1VMgRmCSEzNvhLZQc8mu6iQ?pwd1234 提取碼: 1234 或 https://pan.quark.cn/s/f3d4511b790a

leetcode刷題記錄(一百零七)——279. 完全平方數

&#xff08;一&#xff09;問題描述 279. 完全平方數 - 力扣&#xff08;LeetCode&#xff09;279. 完全平方數 - 給你一個整數 n &#xff0c;返回 和為 n 的完全平方數的最少數量 。完全平方數 是一個整數&#xff0c;其值等于另一個整數的平方&#xff1b;換句話說&#x…

軟考高級信息系統項目管理師筆記-第2章信息技術發展

第2章 信息技術發展 2.1 信息技術及其發展 1、按表現形態的不同,信息技術可分為硬技術(物化技術)與軟技術(非物化技術)。前者指各種信息設備及其功 能,如傳感器、服務器、智能手機、通信衛星、筆記本電腦。后者指有關信息獲取與處理的各種知識、方法 與技能,如語言文字…

搭建RAG知識庫的完整源碼實現

搭建RAG知識庫的完整源碼實現&#xff08;基于Python 3.8&#xff09;&#xff1a; # -*- coding: utf-8 -*- # 文件名&#xff1a;rag_knowledge_base.py # RAG知識庫搭建完整源碼&#xff08;含中文注釋&#xff09;import os import re import shutil import chromadb from…

利用AFE+MCU構建電池管理系統(BMS)

前言 實際BMS項目中&#xff0c;可能會綜合考慮成本、可拓展、通信交互等&#xff0c;用AFE&#xff08;模擬前端&#xff09;MCU&#xff08;微控制器&#xff09;實現BMS&#xff08;電池管理系統&#xff09;。 希望看到這篇博客的朋友能指出錯誤或提供改進建議。 有紕漏…

基于SpringBoot的智慧家政服務平臺系統設計與實現的設計與實現(源碼+SQL腳本+LW+部署講解等)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

什么是 Cloud Studio DeepSeek ; 怎么實現Open WebUI快速體驗

什么是 Cloud Studio DeepSeek ;怎么實現Open WebUI快速體驗 一、概述 歡迎使用 Cloud Studio DeepSeek 工作空間!我們已為您預裝并啟動了以下服務,等待加載十幾秒即可查看效果: Ollama 服務:支持通過 API 調用 DeepSeek 模型。 AnythingLLM 前端服務:提供交互式聊天界…

【Python 語法】常用 Python 內置函數

reversed() 反轉reversed() 的語法反轉字符串、列表、元組 sorted() 自定義排序sorted() 語法使用示例1. 基本排序&#xff1a;默認升序排列2. 基本排序&#xff1a;降序排列3. 自定義排序&#xff1a;使用 key 參數4. 自定義排序&#xff1a;按某種規則進行排序5. 排序字典&am…

[網絡] 如何開機自動配置靜態IP,并自動啟動程序

背景&#xff1a; 需要固定ip地址&#xff0c;并且能夠自動啟動可執行文件。 流程&#xff1a; 1.在/etc/network/interfaces 中添加 auto eth0 iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1 2.將下面這行代碼添加自動啟動腳本 …

打造智能聊天體驗:前端集成 DeepSeek AI 助你快速上手

DeepSeek AI 聊天助手集成指南 先看完整效果&#xff1a; PixPin_2025-02-19_09-15-59 效果圖&#xff1a; 目錄 項目概述功能特點環境準備項目結構組件詳解 ChatContainerChatInputMessageBubbleTypeWriter 核心代碼示例使用指南常見問題 項目概述 基于 Vue 3 TypeScrip…

【C# 數據結構】隊列 FIFO

目錄 隊列的概念FIFO (First-In, First-Out)Queue<T> 的工作原理&#xff1a;示例&#xff1a;解釋&#xff1a; 小結&#xff1a; 環形隊列1. **FIFO&#xff1f;**2. **環形緩沖隊列如何實現FIFO&#xff1f;**關鍵概念&#xff1a; 3. **環形緩沖隊列的工作過程**假設…

Mac 清理緩存,提高內存空間

步驟 1.打開【訪達】 2.菜單欄第五個功能【前往】&#xff0c;點擊【個人】 3.【command shift J】顯示所有文件&#xff0c;打開【資源庫】 4.刪除【Containers】和【Caches】文件 Containers 文件夾&#xff1a;用于存儲每個應用程序的沙盒數據&#xff0c;確保應用程序…

Hutool - DFA:基于 DFA 模型的多關鍵字查找

一、簡介 在文本處理中&#xff0c;常常需要在一段文本里查找多個關鍵字是否存在&#xff0c;例如敏感詞過濾、關鍵詞匹配等場景。Hutool - DFA 模塊基于確定性有限自動機&#xff08;Deterministic Finite Automaton&#xff0c;DFA&#xff09;模型&#xff0c;為我們提供了…

C++STL容器之map

1.介紹 map是 C 標準模板庫&#xff08;STL&#xff09;中的一個關聯容器&#xff0c;用于存儲鍵值對&#xff08;key-value pairs&#xff09;。map中的元素是按照鍵&#xff08;key&#xff09;進行排序的&#xff0c;并且每個鍵在容器中是唯一的。map通常基于紅黑樹&#xf…