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开口说话啦。

举报
评论 0