Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2015, 17:01   #1
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию Говорящий Excel

Всем здравствуйте! Хочу, чтобы Excel проговаривал, что написано в ячейке. Для этого из вложения надо скопировать Govorilka_cp.exe на диск C , прописать в Пуск-Выполнить C:\Govorilka_cp.exe -e24 -c и тогда Govorilka_cp проговорит, то что в буфере обмена. Скажите пожалуйста, каким кодом сделать тоже самое из Excel? Сам я мало чего понимаю. Привожу не рабочий
Код:
Private Declare Function ShellExecute Lib "shell32" _
    Alias "ShellExecuteA" (ByVal hWnd As Long, _
    ByVal lpOperation As String, ByVal lpFile As String, _
     ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
   Private Const SW_SHOWNORMAL = 1
  Sub Open_File(F_Name) 'Запуск файлов
 ShellExecute 0, vbNullString, F_Name, vbNullString, vbNullString, SW_SHOWNORMAL
    End Sub

Private Sub CommandButton1_Click()
'Копировать_в_Буфер
    Range("A1").Copy
    
'Проговорить текст из буфера
Open_File "C:\Govorilka_cp.exe -e24 -c" ' Не срабатывает
Open_File "C:\Govorilka_cp.exe"

End Sub
Вложения
Тип файла: rar говорящий Excel и Govorilka_cp.rar (182.2 Кб, 55 просмотров)

Последний раз редактировалось agregator; 03.02.2015 в 17:16.
agregator вне форума Ответить с цитированием
Старый 03.02.2015, 17:15   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте
Код:
Sub tt()
    CreateObject("SAPI.SpVoice").Speak "Change range A1 Ok"
End Sub
Если что-то скажет - можно цикл по ячейкам прикручивать.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.02.2015, 17:37   #3
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Hugo121, спасибо, работает.
Код:
Sub tt()
    CreateObject("SAPI.SpVoice").Speak Selection
End Sub
Код проговаривает нулевым голосовым движком 0: ELAN TTS Russian (Nicolai 16Khz). А можно использовать голосовой движок 24: Alyona (Russian) SAPI5?

Последний раз редактировалось agregator; 03.02.2015 в 17:41.
agregator вне форума Ответить с цитированием
Старый 03.02.2015, 17:49   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вы знаете больше чем я
Я не знаю...

Есть что-то тут
http://www.codeproject.com/Articles/...g-Windows-SAPI
и тут
http://www.codeproject.com/Articles/...MS-SAPI-to-use
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 03.02.2015 в 18:00.
Hugo121 вне форума Ответить с цитированием
Старый 03.02.2015, 18:04   #5
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Hugo121, просто для Govorilka_cp можно посмотреть установленные голосовые движки и прописать номер голосового движка, которым проговаривать, C:\Govorilka_cp.exe -e24 -c. А в принципе VBA может сделать тоже, что и строка Выполнить?

Последний раз редактировалось agregator; 03.02.2015 в 18:07.
agregator вне форума Ответить с цитированием
Старый 03.02.2015, 18:08   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Может. Но без проверки писать код не берусь.
Поищите коды со словом Shell

Вот например макрос для получения изображения ячейки А1:
Код:
Sub bb()
[A1].Copy
Shell """C:\Program Files\IrfanView\i_view32.exe"" /clippaste /dpi=(300,300) /convert=d:\A1.jpg"
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 03.02.2015 в 18:11.
Hugo121 вне форума Ответить с цитированием
Старый 05.02.2015, 00:47   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
А в принципе VBA может сделать тоже, что и строка Выполнить?
да
только правильнее использовать не shell (она не есть аналог ПУСК-ВЫПОЛНИТЬ),
а конструкцию
Код:
CreateObject("wscript.Shell").Run "команда"
например, чтобы открыть произвольный файл или гиперссылку:
Код:
CreateObject("wscript.Shell").Run """" & filename$ & """"
EducatedFool вне форума Ответить с цитированием
Старый 08.02.2015, 17:08   #8
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

EducatedFool, благодарю за исчерпывающий ответ. Работает как надо.
agregator вне форума Ответить с цитированием
Старый 11.03.2017, 11:00   #9
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Добрый день.
А как все это дело научить говорить по русски?
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 18.03.2017, 11:26   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
А как все это дело научить говорить по русски?
так поставить русский голосовой движок.
начните знакомоство с этой темой с сайта Говорилки - http://www.vector-ski.ru/vecs/govorilka/download.htm
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Blowfish (резервирование дополнительного байта для блока, говорящий о длине блока) ITdocer Общие вопросы C/C++ 0 21.05.2014 15:40
Запрет режима преобразования файлов excel 2007 для excel 2003 ольгаг Microsoft Office Excel 4 28.03.2014 12:20
Подключения к Excel исполбзуя ADO: разные версии файлов excel VVkSoft БД в Delphi 0 27.09.2012 00:34
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
Формирование из excel в ASCII, у меня он формирует по одному клиенту а в Excel нескол Askat Общие вопросы Delphi 0 18.07.2007 06:28