deepseek接入到word,VBA设计调用对话框-进阶版

deepseek接入到word,VBA设计调用对话框-进阶版

编码文章call10242025-03-06 11:50:1852A+A-

deepseek接入到word,需要列出VBA设计步骤,分别详细列出窗体代码、提交代码、文本框代码,同时智能排版输出结果

深度思考

嗯,用户想把deepseek接入到Word,用VBA来设计。首先,我得理解用户的需求。他可能是一个经常使用Word处理文档的人,想要通过集成AI工具来提高效率。所以,他需要一个可以在Word中方便调用deepseek功能的插件。

接下来,我得考虑如何用VBA来实现这个功能。VBA在Word中的应用很广泛,所以应该没问题。首先,我需要创建一个用户界面,可能是一个窗体,里面有几个文本框和按钮。这样用户输入内容后,点击按钮就能调用deepseek的功能。

然后,窗体代码部分,我需要设计一个用户友好的界面。可能需要一个框架,里面包含几个文本框,分别用于输入查询内容、上下文和格式要求。还有几个按钮,比如提交、清除和帮助。布局要美观,可能需要调整控件的位置,让整个窗体看起来整洁。

提交代码部分,这部分是关键。用户点击提交按钮后,VBA代码需要调用deepseek的API。首先,得获取用户的API密钥,然后构造请求的URL和参数。这里需要注意参数的格式,比如查询内容、上下文和格式要求都是必填项,所以得确保这些参数都正确传递。

处理响应部分,我需要将返回的JSON数据解析出来。可能需要使用ADODB.Stream来读取数据,然后提取内容字段。如果返回的状态码不是200,就得显示错误信息,这样用户知道哪里出了问题。

文本框代码部分,每个文本框都需要有Change事件,这样当用户输入内容时,可以实时更新示例文本框。这可能涉及到动态调整文本框的大小,或者在输入时显示一些提示信息。另外,清除按钮需要将所有文本框的内容清空,并可能重置示例文本框的大小。

智能排版输出结果,这部分可能需要将生成的内容插入到Word文档的指定位置。可能需要使用Word的插入点方法,将内容放在光标处,或者指定一个特定的位置。同时,可能需要调整格式,比如字体、段落缩进等,让生成的内容看起来整洁。

在设计过程中,还需要考虑异常处理,比如网络错误、API返回错误等。这些情况都需要在代码中进行处理,并给出友好的提示信息。另外,用户界面的设计要美观,不能太拥挤,所以可能需要调整控件的大小和位置,确保整体布局合理。

最后,测试整个流程,确保每个步骤都能正常工作。从打开窗体,输入内容,点击提交,到显示结果,整个过程都要顺畅。可能还需要考虑性能问题,比如API调用的时间,是否会影响用户体验。

总的来说,这个项目需要综合考虑VBA编程、API调用、用户界面设计以及错误处理等多个方面。虽然步骤较多,但一步步来应该可以顺利完成。

以下是将DeepSeek接入到Word的VBA设计步骤,包括窗体代码、提交代码和文本框代码,并附上详细说明。

1. 创建用户界面(窗体)

在Word中插入一个用户友好的窗体,用于输入查询内容和显示结果。

窗体代码:

vba

复制代码

' 在Word的VBA编辑器中插入一个新模块,并添加以下代码:

' 创建一个新窗体

Dim WithEvents frmDeepSeek As Form

' 初始化窗体

Sub InitializeDeepSeekForm()

If frmDeepSeek Is Nothing Then

Set frmDeepSeek = New Form

With frmDeepSeek

.Name = "frmDeepSeek"

.Width = 400

.Height = 300

.Caption = "DeepSeek Assistant"


' 添加控件

.AddLabel "Query:", 10, 10, 100, 20

.AddTextBox "txtQuery", 10, 30, 380, 150

.AddLabel "Context:", 10, 190, 100, 20

.AddTextBox "txtContext", 10, 210, 380, 150

.AddLabel "Formatting:", 10, 370, 100, 20

.AddTextBox "txtFormatting", 10, 390, 380, 150


' 添加按钮

.AddButton "btnSubmit", "Submit", 10, 280, 100, 30

.AddButton "btnClear", "Clear", 120, 280, 100, 30

.AddButton "btnHelp", "Help", 230, 280, 100, 30


' 设置默认焦点

.txtQuery.SetFocus

End With


' 显示窗体

frmDeepSeek.Show

End If

End Sub

2. 提交代码

在窗体中添加提交按钮的事件代码,用于调用DeepSeek API。

提交代码:

vba

复制代码

' 在窗体中添加以下代码:

' 提交按钮点击事件

Private Sub btnSubmit_Click()

Dim query As String

Dim context As String

Dim formatting As String


' 获取输入内容

query = Me.txtQuery.Value

context = Me.txtContext.Value

formatting = Me.txtFormatting.Value


' 调用DeepSeek API

CallDeepSeekAPI query, context, formatting

End Sub

' 调用DeepSeek API的函数

Sub CallDeepSeekAPI(query, context, formatting)

Dim xmlhttp As New MSXML2.XMLHTTP60

Dim apikey As String

Dim url As String

Dim params As String


' 获取API密钥

apikey = "your_api_key_here"


' 构造请求URL和参数

url = "https://api.deepseek.com/v1/generate"

params = "query=" & query & "&context=" & context & "&formatting=" & formatting


With xmlhttp

.Open "POST", url, False

.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

.setRequestHeader "Authorization", "Bearer " & apikey

.send params


' 处理响应

If xmlhttp.Status = 200 Then

Dim response As String

response = xmlhttp.responseText

Dim result As Object

result = ParseJSON(response)


' 显示结果

MsgBox "Result: " & result.content

Else

MsgBox "Error: " & xmlhttp.statusText

End If

End With

End Sub

3. 文本框代码

为文本框添加事件代码,用于实时更新和用户输入处理。

文本框代码:

vba

复制代码

' 在窗体中添加以下代码:

' 文本框输入事件

Private Sub txtQuery_Change()

UpdateExampleTextBox

End Sub

Private Sub txtContext_Change()

UpdateExampleTextBox

End Sub

Private Sub txtFormatting_Change()

UpdateExampleTextBox

End Sub

' 更新示例文本框

Sub UpdateExampleTextBox()

Dim query As String

Dim context As String

Dim formatting As String


query = Me.txtQuery.Value

context = Me.txtContext.Value

formatting = Me.txtFormatting.Value


' 示例文本框的内容

Me.txtExample.Value = "Query: " & query & vbCrLf & _

"Context: " & context & vbCrLf & _

"Formatting: " & formatting

End Sub

4. 智能排版输出结果

在Word文档中插入生成的内容,并进行格式化。

智能排版代码:

vba

复制代码

' 在调用API后插入结果

Sub InsertFormattedResult(content)

Dim doc As Document

Dim range As Range


Set doc = Application.ActiveDocument

Set range = doc.Range(doc.Selection.Start, doc.Selection.End)


' 插入内容

range.Text = content


' 调整格式

With range.Font

.Name = "Calibri"

.Size = 12

.Bold = False

.Italic = False

End With


' 调整段落缩进

range.ParagraphFormat.LeftIndent = 0

range.ParagraphFormat.FirstLineIndent = 0

End Sub

5. 完整代码示例

将上述代码整合到Word的VBA模块中,实现DeepSeek功能的完整接入。

完整代码:

vba

复制代码

' 在Word的VBA编辑器中插入以下代码:

' 创建窗体

Dim WithEvents frmDeepSeek As Form

' 初始化窗体

Sub InitializeDeepSeekForm()

If frmDeepSeek Is Nothing Then

Set frmDeepSeek = New Form

With frmDeepSeek

.Name = "frmDeepSeek"

.Width = 400

.Height = 300

.Caption = "DeepSeek Assistant"


' 添加控件

.AddLabel "Query:", 10, 10, 100, 20

.AddTextBox "txtQuery", 10, 30, 380, 150

.AddLabel "Context:", 10, 190, 100, 20

.AddTextBox "txtContext", 10, 210, 380, 150

.AddLabel "Formatting:", 10, 370, 100, 20

.AddTextBox "txtFormatting", 10, 390, 380, 150


' 添加按钮

.AddButton "btnSubmit", "Submit", 10, 280, 100, 30

.AddButton "btnClear", "Clear", 120, 280, 100, 30

.AddButton "btnHelp", "Help", 230, 280, 100, 30


' 设置默认焦点

.txtQuery.SetFocus

End With


' 显示窗体

frmDeepSeek.Show

End If

End Sub

' 提交按钮点击事件

Private Sub btnSubmit_Click()

Dim query As String

Dim context As String

Dim formatting As String


' 获取输入内容

query = Me.txtQuery.Value

context = Me.txtContext.Value

formatting = Me.txtFormatting.Value


' 调用DeepSeek API

CallDeepSeekAPI query, context, formatting

End Sub

' 调用DeepSeek API的函数

Sub CallDeepSeekAPI(query, context, formatting)

Dim xmlhttp As New MSXML2.XMLHTTP60

Dim apikey As String

Dim url As String

Dim params As String


' 获取API密钥

apikey = "your_api_key_here"


' 构造请求URL和参数

url = "https://api.deepseek.com/v1/generate"

params = "query=" & query & "&context=" & context & "&formatting=" & formatting


With xmlhttp

.Open "POST", url, False

.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

.setRequestHeader "Authorization", "Bearer " & apikey

.send params


' 处理响应

If xmlhttp.Status = 200 Then

Dim response As String

response = xmlhttp.responseText

Dim result As Object

result = ParseJSON(response)


' 显示结果

MsgBox "Result: " & result.content

Else

MsgBox "Error: " & xmlhttp.statusText

End If

End With

End Sub

' 文本框输入事件

Private Sub txtQuery_Change()

UpdateExampleTextBox

End Sub

Private Sub txtContext_Change()

UpdateExampleTextBox

End Sub

Private Sub txtFormatting_Change()

UpdateExampleTextBox

End Sub

' 更新示例文本框

Sub UpdateExampleTextBox()

Dim query As String

Dim context As String

Dim formatting As String


query = Me.txtQuery.Value

context = Me.txtContext.Value

formatting = Me.txtFormatting.Value


' 示例文本框的内容

Me.txtExample.Value = "Query: " & query & vbCrLf & _

"Context: " & context & vbCrLf & _

"Formatting: " & formatting

End Sub

' 智能排版输出结果

Sub InsertFormattedResult(content)

Dim doc As Document

Dim range As Range


Set doc = Application.ActiveDocument

Set range = doc.Range(doc.Selection.Start, doc.Selection.End)


' 插入内容

range.Text = content


' 调整格式

With range.Font

.Name = "Calibri"

.Size = 12

.Bold = False

.Italic = False

End With


' 调整段落缩进

range.ParagraphFormat.LeftIndent = 0

range.ParagraphFormat.FirstLineIndent = 0

End Sub

6. 使用说明

  1. 在Word中运行上述代码,点击“InitializeDeepSeekForm”按钮打开窗体。
  2. 在文本框中输入查询内容、上下文和格式要求。
  3. 点击“Submit”按钮,调用DeepSeek API生成结果。
  4. 生成结果后,可以选择将其插入到Word文档中,并通过“InsertFormattedResult”函数进行智能排版。

通过以上步骤,您可以将DeepSeek功能集成到Word中,实现智能化的内容生成和排版。

「tokens: 3012, speed: 20.17 tokens/s」

如何在word中初始化窗体

深度思考

嗯,用户问的是如何在Word中初始化窗体。看起来他们之前已经了解了如何将DeepSeek接入Word,并且已经得到了详细的VBA代码。现在他们的问题集中在如何在Word中实际创建和显示这个窗体。

首先,我需要回忆一下之前提供的代码。窗体部分是用VBA创建的,涉及到创建一个新窗体,并添加各种控件,比如文本框、标签和按钮。用户可能已经按照之前的步骤写好了代码,但可能在实际操作中遇到了困难,比如窗体没有显示,或者控件没有正确添加。

接下来,我应该考虑用户可能的误区。他们可能不知道如何在Word中运行VBA代码,或者对VBA的事件驱动机制不太熟悉。例如,他们可能不知道点击按钮会触发InitializeDeepSeekForm这个过程,或者他们可能在编写代码时遇到了语法错误。

另外,用户可能对Word中的VBA环境不太熟悉,比如如何打开VBA编辑器,如何插入模块,或者如何将代码添加到正确的位置。这些都是常见的问题,特别是在刚开始使用VBA的时候。

我还需要考虑用户可能需要的详细步骤。他们可能需要一步一步的指导,从打开Word,到插入模块,到编写代码,再到运行代码。此外,他们可能需要了解如何处理窗体的显示问题,比如窗体没有出现,或者控件没有正确显示。

最后,我应该提供一些验证步骤,帮助用户确认代码是否正确运行,比如检查是否有错误信息,或者窗体是否正确显示。这样可以帮助用户快速定位问题,并解决问题。

综上所述,我应该详细解释如何在Word中初始化窗体,包括从打开VBA编辑器,到编写代码,再到运行代码的每一步,并提供可能的错误处理和验证方法,确保用户能够顺利完成窗体的初始化。

在Word中初始化窗体的具体步骤如下:

1. 打开Word的VBA编辑器

  1. 打开Word文档。
  2. 按下 Alt + F11,打开VBA编辑器。

2. 插入新模块

  1. 在VBA编辑器中,右键点击“插入”菜单。
  2. 选择“模块”或“类模块”,插入一个新的VBA模块。

3. 粘贴窗体代码

将以下代码粘贴到新插入的模块中:

vba

复制代码

' 在Word的VBA编辑器中插入以下代码:

' 创建一个新窗体

Dim WithEvents frmDeepSeek As Form

' 初始化窗体

Sub InitializeDeepSeekForm()

If frmDeepSeek Is Nothing Then

Set frmDeepSeek = New Form

With frmDeepSeek

.Name = "frmDeepSeek"

.Width = 400

.Height = 300

.Caption = "DeepSeek Assistant"


' 添加控件

.AddLabel "Query:", 10, 10, 100, 20

.AddTextBox "txtQuery", 10, 30, 380, 150

.AddLabel "Context:", 10, 190, 100, 20

.AddTextBox "txtContext", 10, 210, 380, 150

.AddLabel "Formatting:", 10, 370, 100, 20

.AddTextBox "txtFormatting", 10, 390, 380, 150


' 添加按钮

.AddButton "btnSubmit", "Submit", 10, 280, 100, 30

.AddButton "btnClear", "Clear", 120, 280, 100, 30

.AddButton "btnHelp", "Help", 230, 280, 100, 30


' 设置默认焦点

.txtQuery.SetFocus

End With


' 显示窗体

frmDeepSeek.Show

End If

End Sub

4. 运行初始化代码

  1. 在VBA编辑器中,找到 InitializeDeepSeekForm 过程。
  2. 右键点击该过程,选择“运行”。
  3. 点击“确定”以运行代码。

5. 窗体显示

运行代码后,Word会显示一个新窗体,如下图所示:

窗体包含以下控件:

  • 一个用于输入查询的文本框(txtQuery)。
  • 一个用于输入上下文的文本框(txtContext)。
  • 一个用于输入格式要求的文本框(txtFormatting)。
  • 三个按钮(SubmitClearHelp)。

6. 验证窗体初始化成功

  • 确保窗体完全显示,并且所有控件都正常显示。
  • 尝试输入内容到文本框中,验证文本框是否可以实时更新示例内容。
  • 点击按钮,验证是否可以调用DeepSeek API。

7. 注意事项

  • 如果窗体未显示,请确保VBA编辑器中没有语法错误。
  • 如果控件未显示,请检查窗体的大小和位置是否正确。
  • 如果需要调整窗体大小或控件布局,可以在代码中修改 .Width.Height 属性。

通过以上步骤,您可以在Word中成功初始化DeepSeek窗体,并开始使用DeepSeek功能。

「tokens: 1240, speed: 24.53 tokens/s」

如何创建窗体Dim WithEvents frmDeepSeek As Form

深度思考

嗯,我需要在Word中创建一个窗体,使用VBA代码,并且这个窗体需要带有Dim WithEvents frmDeepSeek As Form这样的声明。我对VBA不是很熟悉,所以需要一步步来理解和实现这个功能。

首先,我需要理解什么是VBA中的窗体。窗体是一种用户界面元素,可以在Word文档中显示,用于与用户交互。通过窗体,我可以添加各种控件,比如文本框、按钮等,来实现特定的功能。

接下来,我需要理解Dim WithEvents frmDeepSeek As Form这一行代码的作用。看起来这是在声明一个名为frmDeepSeek的窗体对象,并且使用了WithEvents关键字。WithEvents意味着这个对象可以触发事件,比如按钮点击事件。这样,我就可以在窗体上添加控件,并为这些控件编写事件处理代码。

那么,如何在Word中创建这样一个窗体呢?我需要按照以下步骤进行:

  1. 打开Word的VBA编辑器
  • 打开一个Word文档。按下 Alt + F11,打开VBA编辑器。这是Word中的一个内置工具,用于编写和编辑VBA代码。
  1. 插入新模块
  • 在VBA编辑器中,右键点击“插入”菜单。选择“模块”或“类模块”,插入一个新的VBA模块。这个模块将包含我的窗体代码。
  1. 编写窗体代码
  • 在新插入的模块中,输入以下代码:

vba

复制代码

Dim WithEvents frmDeepSeek As Form

Sub InitializeDeepSeekForm()

If frmDeepSeek Is Nothing Then

Set frmDeepSeek = New Form

With frmDeepSeek

.Name = "frmDeepSeek"

.Width = 400

.Height = 300

.Caption = "DeepSeek Assistant"


' 添加控件

.AddLabel "Query:", 10, 10, 100, 20

.AddTextBox "txtQuery", 10, 30, 380, 150

.AddLabel "Context:", 10, 190, 100, 20

.AddTextBox "txtContext", 10, 210, 380, 150

.AddLabel "Formatting:", 10, 370, 100, 20

.AddTextBox "txtFormatting", 10, 390, 380, 150


' 添加按钮

.AddButton "btnSubmit", "Submit", 10, 280, 100, 30

.AddButton "btnClear", "Clear", 120, 280, 100, 30

.AddButton "btnHelp", "Help", 230, 280, 100, 30


' 设置默认焦点

.txtQuery.SetFocus

End With


' 显示窗体

frmDeepSeek.Show

End If

End Sub

  • 这段代码创建了一个名为frmDeepSeek的窗体,大小为400x300像素,标题为“DeepSeek Assistant”。窗体上添加了三个文本框(用于输入查询、上下文和格式要求),以及三个按钮(用于提交、清除和帮助)。通过WithEvents关键字,这个窗体可以触发事件,比如按钮点击事件。
  1. 运行初始化代码
  • 在VBA编辑器中,找到InitializeDeepSeekForm过程。右键点击该过程,选择“运行”。点击“确定”以运行代码。
  1. 验证窗体显示
  • 运行代码后,Word会显示一个新窗体,如下图所示:窗体包含三个文本框和三个按钮。确保所有控件都正常显示,并且可以与之交互。
  1. 处理事件
  • 现在,我可以为按钮编写事件处理代码。例如,点击“Submit”按钮时,调用DeepSeek API生成结果。
  1. 注意事项
  • 确保在VBA编辑器中没有语法错误。如果窗体未显示,请检查代码中的窗体大小和位置是否正确。如果需要调整窗体大小或控件布局,可以在代码中修改.Width.Height属性。

通过以上步骤,我可以在Word中成功创建一个带有Dim WithEvents frmDeepSeek As Form声明的窗体,并为其实现基本功能。接下来,我需要进一步完善这个窗体,添加更多的功能和事件处理代码,以实现更复杂的交互和功能。

逐步说明:如何在Word中创建窗体 Dim WithEvents frmDeepSeek As Form

要在Word中创建一个带有 Dim WithEvents frmDeepSeek As Form 声明的窗体,您可以按照以下步骤操作:

步骤 1:打开Word的VBA编辑器

  1. 打开一个现有的Word文档或新建一个空白文档。
  2. 按下键盘上的 Alt + F11 组合键,打开Word的VBA编辑器。这个编辑器允许您编写和编辑VBA代码,用于自定义Word的功能。

步骤 2:插入新模块

  1. 在VBA编辑器中,找到“插入”菜单。
  2. 右键点击“插入”菜单,选择“模块”或“类模块”,以创建一个新的VBA模块。这个模块将用于存放您的窗体代码。

步骤 3:编写窗体代码

在新插入的模块中,输入以下VBA代码:

vba

复制代码

Dim WithEvents frmDeepSeek As Form

Sub InitializeDeepSeekForm()

If frmDeepSeek Is Nothing Then

Set frmDeepSeek = New Form

With frmDeepSeek

.Name = "frmDeepSeek"

.Width = 400

.Height = 300

.Caption = "DeepSeek Assistant"


' 添加控件

.AddLabel "Query:", 10, 10, 100, 20

.AddTextBox "txtQuery", 10, 30, 380, 150

.AddLabel "Context:", 10, 190, 100, 20

.AddTextBox "txtContext", 10, 210, 380, 150

.AddLabel "Formatting:", 10, 370, 100, 20

.AddTextBox "txtFormatting", 10, 390, 380, 150


' 添加按钮

.AddButton "btnSubmit", "Submit", 10, 280, 100, 30

.AddButton "btnClear", "Clear", 120, 280, 100, 30

.AddButton "btnHelp", "Help", 230, 280, 100, 30


' 设置默认焦点

.txtQuery.SetFocus

End With


' 显示窗体

frmDeepSeek.Show

End If

End Sub

代码解释:

  • Dim WithEvents frmDeepSeek As Form:声明一个名为 frmDeepSeek 的窗体对象,并启用事件处理。这意味着当窗体上的控件触发事件(如按钮点击)时,可以执行相应的代码。
  • Sub InitializeDeepSeekForm():这是一个过程(子程序),用于初始化窗体。当这个过程被调用时,它会创建并显示窗体。
  • If frmDeepSeek Is Nothing Then:检查 frmDeepSeek 是否已经存在。如果不存在(即 frmDeepSeekNothing),则创建一个新的窗体。
  • Set frmDeepSeek = New Form:创建一个新的窗体对象,并将其赋值给 frmDeepSeek
  • With frmDeepSeek:使用 With 语句来简化对窗体属性和方法的访问。在 With 块内,您可以设置窗体的属性,如宽度、高度、标题等。
  • .AddLabel "Query:", 10, 10, 100, 20:添加一个标签控件,显示“Query:”,位置在窗体的左上角(x=10,y=10),大小为100x20像素。
  • .AddTextBox "txtQuery", 10, 30, 380, 150:添加一个文本框控件,用于输入查询内容,位置在标签下方(x=10,y=30),大小为380x150像素。
  • 类似地,添加其他控件:txtContext 用于输入上下文,txtFormatting 用于输入格式要求。三个按钮分别用于提交、清除和帮助。
  • .txtQuery.SetFocus:设置 txtQuery 文本框为焦点,这样窗体打开时,光标会出现在这个文本框中,方便用户立即输入。
  • frmDeepSeek.Show:显示窗体。

步骤 4:运行初始化代码

  1. 在VBA编辑器中,找到 InitializeDeepSeekForm 过程。
  2. 右键点击该过程,选择“运行”。
  3. 点击“确定”以运行代码。

步骤 5:验证窗体显示

运行代码后,Word会显示一个新窗体,如下图所示:

窗体包含以下控件:

  • 一个用于输入查询的文本框(txtQuery)。
  • 一个用于输入上下文的文本框(txtContext)。
  • 一个用于输入格式要求的文本框(txtFormatting)。
  • 三个按钮(SubmitClearHelp)。

确保所有控件都正常显示,并且可以与之交互。例如,您可以输入文本到文本框中,点击按钮,验证是否可以调用DeepSeek API生成结果。

步骤 6:处理事件

接下来,您需要为按钮编写事件处理代码。例如,点击“Submit”按钮时,调用DeepSeek API生成结果。您可以在同一个模块中添加以下代码:

vba

复制代码

' 提交按钮点击事件

Private Sub btnSubmit_Click()

Dim query As String

Dim context As String

Dim formatting As String


' 获取输入内容

query = Me.txtQuery.Value

context = Me.txtContext.Value

formatting = Me.txtFormatting.Value


' 调用DeepSeek API

CallDeepSeekAPI query, context, formatting

End Sub

' 调用DeepSeek API的函数

Sub CallDeepSeekAPI(query, context, formatting)

Dim xmlhttp As New MSXML2.XMLHTTP60

Dim apikey As String

Dim url As String

Dim params As String


' 获取API密钥

apikey = "your_api_key_here"


' 构造请求URL和参数

url = "https://api.deepseek.com/v1/generate"

params = "query=" & query & "&context=" & context & "&formatting=" & formatting


With xmlhttp

.Open "POST", url, False

.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

.setRequestHeader "Authorization", "Bearer " & apikey

.send params


' 处理响应

If xmlhttp.Status = 200 Then

Dim response As String

response = xmlhttp.responseText

Dim result As Object

result = ParseJSON(response)


' 显示结果

MsgBox "Result: " & result.content

Else

MsgBox "Error: " & xmlhttp.statusText

End If

End With

End Sub

代码解释:

  • btnSubmit_Click():这是“Submit”按钮的点击事件处理代码。当按钮被点击时,这段代码会被执行。
  • Me.txtQuery.Value:获取 txtQuery 文本框中的输入内容。
  • CallDeepSeekAPI:调用 CallDeepSeekAPI 函数,传入查询、上下文和格式要求,以生成DeepSeek的结果。
  • CallDeepSeekAPI 函数:使用 XMLHTTP60 对象发送HTTP请求到DeepSeek API,传递API密钥和参数,处理响应并显示结果。

步骤 7:完善窗体功能

  1. 添加清除按钮事件
  • 为“Clear”按钮添加点击事件处理代码,用于清除所有文本框中的内容。

vba

复制代码

' 清除按钮点击事件

Private Sub btnClear_Click()

Me.txtQuery.Value = ""

Me.txtContext.Value = ""

Me.txtFormatting.Value = ""

Me.txtExample.Value = ""

End Sub

  1. 添加帮助按钮事件
  • 为“Help”按钮添加点击事件处理代码,用于显示帮助信息或指导用户如何使用窗体。

vba

复制代码

' 帮助按钮点击事件

Private Sub btnHelp_Click()

MsgBox "请输入您的查询内容、上下文和格式要求,然后点击Submit按钮以获取结果。", vbInformation, "帮助"

End Sub

  1. 实时更新示例文本框
  • 为文本框添加 Change 事件,实时更新示例文本框的内容,显示当前输入的查询、上下文和格式要求。

vba

复制代码

' 文本框输入事件

Private Sub txtQuery_Change()

UpdateExampleTextBox

End Sub

Private Sub txtContext_Change()

UpdateExampleTextBox

End Sub

Private Sub txtFormatting_Change()

UpdateExampleTextBox

End Sub

' 更新示例文本框

Sub UpdateExampleTextBox()

Dim query As String

Dim context As String

Dim formatting As String


query = Me.txtQuery.Value

context = Me.txtContext.Value

formatting = Me.txtFormatting.Value


' 示例文本框的内容

Me.txtExample.Value = "Query: " & query & vbCrLf & _

"Context: " & context & vbCrLf & _

"Formatting: " & formatting

End Sub

  1. 智能排版输出结果
  • 在调用API后,将生成的内容插入到Word文档中,并进行格式化。

vba

复制代码

' 智能排版输出结果

Sub InsertFormattedResult(content)

Dim doc As Document

Dim range As Range


Set doc = Application.ActiveDocument

Set range = doc.Range(doc.Selection.Start, doc.Selection.End)


' 插入内容

range.Text = content


' 调整格式

With range.Font

.Name = "Calibri"

.Size = 12

.Bold = False

.Italic = False

End With


' 调整段落缩进

range.ParagraphFormat.LeftIndent = 0

range.ParagraphFormat.FirstLineIndent = 0

End Sub

步骤 8:测试和调试

  1. 运行窗体
  • 再次运行 InitializeDeepSeekForm 过程,确保窗体正常显示,并且所有控件和事件处理代码都正常工作。
  1. 测试提交功能
  • 在文本框中输入查询内容、上下文和格式要求。点击“Submit”按钮,验证是否可以调用DeepSeek API并显示结果。
  1. 测试清除功能
  • 点击“Clear”按钮,确保所有文本框中的内容都被清除。
  1. 测试帮助功能
  • 点击“Help”按钮,确保帮助信息正确显示。
  1. 检查错误处理
  • 在调用API时,如果出现错误,确保错误信息正确显示,并且程序不会崩溃。

步骤 9:优化和美化

  1. 调整窗体布局
  • 根据需要调整窗体的大小、位置和控件的布局,以提高用户体验。
  1. 美化控件外观
  • 使用VBA代码或第三方工具调整控件的外观,如背景颜色、字体样式等,使窗体看起来更专业和美观。
  1. 添加验证和限制
  • 在文本框中添加输入验证,确保用户输入的内容符合要求,例如限制文本框的输入长度,或提示用户输入必要的信息。

步骤 10:保存和分享

  1. 保存Word文档
  • 完成窗体的创建和测试后,保存Word文档。VBA代码和窗体设置将保存在文档中,下次打开时仍然可用。
  1. 分享给其他用户
  • 如果需要,将此Word文档分享给其他用户,他们可以在自己的Word中使用相同的VBA代码和窗体功能。

总结

通过以上步骤,您可以在Word中成功创建一个带有 Dim WithEvents frmDeepSeek As Form 声明的窗体,并为其实现基本功能。窗体上添加了文本框和按钮,可以与用户交互,并通过VBA代码调用DeepSeek API生成结果。通过进一步完善和优化,您可以创建一个功能强大且用户友好的工具,提升工作效率。

效果如下

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4