ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: cijixxb

[求助] 关于用VBA进行语音朗读

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-4-30 11:16 | 显示全部楼层
dongdonggege 发表于 2016-4-30 11:12
我的不行吗!提示:“应用程序定义或对象定义错误”,如果把“Application.Speech.Speak s”换成CreateOb ...

能具体点 说一下 怎么控制速度么?

TA的精华主题

TA的得分主题

发表于 2016-4-30 11:17 | 显示全部楼层
dongdonggege 发表于 2016-4-30 11:12
我的不行吗!提示:“应用程序定义或对象定义错误”,如果把“Application.Speech.Speak s”换成CreateOb ...

能具体 说明一下 在哪里增加参数   才能控制速度呢?

TA的精华主题

TA的得分主题

发表于 2016-4-30 11:35 | 显示全部楼层
  1. Sub bajifeng()
  2. Dim objSV
  3. Set objSV = CreateObject("SAPI.SpVoice")
  4. For i = 1 To 10
  5.     s = Cells(i, "a")
  6.     objSV.Speak s
  7.     objSV.Rate = 0
  8.     newHour = Hour(Now())
  9.     newMinute = Minute(Now())
  10.     newSecond = Second(Now()) + 1
  11.     waitTime = TimeSerial(newHour, newMinute, newSecond)
  12.     Application.Wait waitTime
  13. Next
  14. End Sub
复制代码


在这里调语速   正数加速  负数减速  0为正常语速  objSV.Rate = 0

TA的精华主题

TA的得分主题

发表于 2016-4-30 11:43 | 显示全部楼层

  1. Sub delay()

  2. '前面的代码到此

  3. t = Timer

  4. Do While Timer - 0.5 < t

  5. Debug.Print

  6. Loop

  7. '后面的代码继续

  8. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2016-4-30 11:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub aa()

  2. Dim S As Single

  3. S = Timer

  4. If Application.Wait(Now + TimeValue("0:00:05") / 10) Then MsgBox "耗时" & Format(Timer - S, "0.##") & "s"

  5. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2016-4-30 11:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. API函数sleep()
  2. 功能暂停执行,参数单位毫秒
  3. 如:sleep(1000) 暂停1秒
  4. Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
复制代码

TA的精华主题

TA的得分主题

发表于 2016-4-30 12:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

如果是 要朗读 a1:c10之间的内容  又该怎么写代码呢?































TA的精华主题

TA的得分主题

发表于 2016-5-2 10:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

最好直接给写好,传个附件。这些设置的数值最好能指向单元格。直接修改单元格的界面就行了。

TA的精华主题

TA的得分主题

发表于 2016-5-2 13:16 | 显示全部楼层
间隔3朗读A1到A10
  1. Private Declare Function SleepEx Lib "kernel32" (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long
  2. Sub 朗读A列间隔3秒()
  3.     Dim Voice As Object
  4.     For i = 1 To 10
  5.         s = Cells(i, "a")
  6.         Set Voice = CreateObject("sapi.spvoice")
  7.         Set Voice.Voice = Voice.GetVoices("", "Language=804").Item(0)  ' 中文朗读
  8.         SleepEx 3000, False
  9.         Voice.Speak s, SVSFlagsAsync
  10.     Next
  11. End Sub
复制代码



TA的精华主题

TA的得分主题

发表于 2016-5-3 15:19 | 显示全部楼层
lujkhua 发表于 2016-5-2 13:16
间隔3秒朗读A1到A10

做个控制的界面怎么弄?最好速度,音量,发音人等项目都能在界面修改!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-27 22:18 , Processed in 0.040342 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表