第一步:准备工作
在正式操作前,确保你已经准备好以下几点:
如果你还没有Office,别着急,这里有个链接可以帮你获取:获取Office 365任意版本的教程。
1.1获取Kimi的API Key
登录开发者平台地址:
首次登录后,会发现kimi默认赠送15元金额,如果只是学习测试的话是够用了。
1.2 新建 API key
点击左侧API Key管理,新建API key。这里注意一下官方的提示。特别是秘钥只会在新建后显示一次,请妥善保存。
作为该组织的管理者,您可以查看和管理该组织中的所有 API Key,组织下最多可以保留 5 个 API Key。密钥只会在新建后显示一次,请妥善保存。不要与他人共享 API Key,或将其暴露在客户端代码中。为了保护您的账户安全,一旦 API 密钥被发现泄露,Moonshot AI 可能会将其禁用。
输入API Key名称和所属项目木,名称随意填写,项目可选择默认default。点击确认按钮。
1.3 记录密钥
1.4 启用PPT的开发者工具并对其设置信任
打开PPT,依次点击“文件 -> 选项 -> 自定义功能区”,勾选“开发工具”,然后点击“确定”.
这一步会在PPT的菜单栏中增加一个“开发工具”选项卡,后续的操作都需要通过这个选项卡进行。
调整信任设置
点击“文件 -> 选项 -> 信任中心 -> 信任中心设置 -> 宏设置”,勾选“启用所有宏”和“信任对VBA工程对象模型的访问”,然后依次点击“确定”。
第二步:编写VBA代码
接下来是最关键的一步,我们需要在PPT中编写VBA代码,连接DeepSeek的API并实现功能。具体步骤如下:
打开VBA编辑器
- 点击菜单栏的“开发工具 -> Visual Basic”,会弹出一个新窗口。
- 在窗口中点击“插入 -> 模块”,创建一个新的代码模块。
粘贴核心代码
在新创建的模块中,复制并粘贴以下代码,并根据需要修改API Key:
Function CallKimiAPI(api_key As String, inputText As String)
Dim API As String
Dim SendTxt As String
Dim Http As Object
Dim status_code As Integer
Dim response As String
MsgBox "开始调用Kimi进行总结,耐心等待......"
API = "https://api.moonshot.cn/v1/chat/completions" ' 替换为Kimi的API地址
SendTxt = "{""model"": ""moonshot-v1-32k"", ""messages"": [{""role"":""system"", ""content"":""你是PPT文案专家,善于总结,输出要总结为条目,每个条目不超过50字,前面总结4至8字,加冒号进行概要描述,总字数不超过200字""}, {""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
If status_code = 200 Then
CallKimiAPI = response
Else
CallKimiAPI = "Error: " & status_code & " - " & response
End If
Set Http = Nothing
End Function
Sub KimiSummary()
Dim selectedText As String
Dim apikey As String
Dim response As String
Dim midString As String
Dim ans As String
Dim shp As Shape
Dim slide As slide
Dim regex As Object
Dim matches As Object
Dim selectedShape As Shape
' 检查是否有选中的对象
If ActiveWindow.Selection.Type = ppSelectionShapes Then
' 获取选中的形状
Set selectedShape = ActiveWindow.Selection.ShapeRange(1)
' 检查形状是否有文本
If selectedShape.HasTextFrame Then
If selectedShape.TextFrame.HasText Then
selectedText = selectedShape.TextFrame.TextRange.Text
selectedText = Replace(selectedText, ChrW$(13), "")
apikey = "Kimi Api密钥" ' 替换为您的Kimi API密钥
response = CallKimiAPI(apikey, selectedText)
If Left(response, 5) <> "Error" Then
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = """content"":""(.*?)"""
End With
Set matches = regex.Execute(response)
If matches.Count > 0 Then
response = matches(0).SubMatches(0)
response = Replace(Replace(response, """", Chr(34)), """", Chr(34))
response = Replace(response, "\n\n", "\n")
response = Replace(response, "\n", vbCrLf)
response = Replace(response, "*", "")
response = Replace(response, "#", "")
' 将结果插入到形状的文本中
selectedShape.TextFrame.TextRange.Text = response
Else
MsgBox "Failed to parse API response.", vbExclamation
End If
Else
MsgBox response, vbCritical
End If
Else
MsgBox "选中的形状没有文本内容。"
End If
Else
MsgBox "选中的形状没有文本框。"
End If
Else
MsgBox "请选择一个形状。"
End If
End Sub
注意事项:
将代码中的apiKey
替换为你获取的Kimi API Key。
第三步:自定义功能区
为了让操作更加方便,我们可以在PPT的菜单栏中添加一个按钮,用来触发DeepSeek的功能。具体步骤如下:
添加自定义按钮
- 点击“文件 -> 选项 -> 自定义功能区”,右键点击“开发工具”,选择“添加新组”。
-
选中新建的组,右键重命名为“DeepSeek”,并选择一个喜欢的图标。
绑定宏到按钮
-
在左侧的命令列表中选择“宏”,找到刚才创建的宏“CallDeepSeekAPI”。
-
点击“添加”到右侧的DeepSeek组中,并点击确定。
第四步:测试功能
现在我们来验证一下Kimi是否成功接入PPT,和 word 不同,不是复制文字,而是选中含有文字的形状,点击设置的按钮或者快捷键,可以在选项卡上,也可以在快捷栏上。
-
打开一个PPT幻灯片,选中一个形状,随便输入一些文字,比如“你好,Kimi!”。
-
选中这段文字,点击菜单栏中的“KimiAPI”的按钮。
- 如果一切设置正确,DeepSeek会返回一段处理后的文字,并显示在幻灯片的文本框中。