VBA让Excel开口说话
给大家用.NET封装好了一个COM组件,可以在VBA中调用该API,实现让Excel开口说话。
COM组件封装
简单的回顾一下COM组件封装步骤,之前有很多文章已经介绍过如何在C#封装COM组件,这里简单回顾一下步骤:
- 创建一个 C# 类库项目,并添加对 System.Speech 的引用。
- 在类库中实现文本转语音的逻辑。
- 将类库编译为 DLL,并使用工具生成类型库(TLB)。
- 注册DLL组件。
核心C#代码如下:
public void speakText(string text)
{
using (SpeechSynthesizer synthesizer = new SpeechSynthesizer())
{
synthesizer.Speak(text);
}
}
VBA中调用COM组件
封装好之后,接下就可以在VBA中调用。步骤如下:
- 在 VBA 中,通过 工具->引用 对话框添加生成的 TLB,以便 VBA 能够识别和使用 .NET 类库中的类型。
- 在 VBA 中编写代码来创建和使用 .NET 类库的实例。
通过调用Tools类的speakText方法就可以把文字转成语音。
测试代码如下:
Sub testTTS()
Dim tool As New Tools
tool.speakText "大家好,hello world"
tool.speakText ActiveCell.value
End Sub
这样就可以让Excel开口说话啦。
请先 后发表评论~