Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему VBA süß.xls открывает, а süß.wav / 17 сообщений из 17, страница 1 из 1
21.04.2014, 15:09
    #38620536
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
Мне нужно открыть звуковой файл süß.wav с помощью VBA
звуковой файл sus.wav VBA открывает, открывает и süß.xls, а вот süß.wav не открывает
для открытия и прослушивания использую

Call sndPlaySound(путь & "\" & звук0, 0)

где звук0 = süß.wav
...
Рейтинг: 0 / 0
21.04.2014, 15:20
    #38620554
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
VBA не поддерживает unicode

используйте chrw для формирования имени файла
...
Рейтинг: 0 / 0
22.04.2014, 12:12
    #38621324
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
Shocker.Pro,

А почему же открывает süß.xls?????????

я формирую имя файла

Sub Знаки_с_умляутом()
For i = 1 To Len(ActiveSheet.Cells(1, 1))
q = AscW(Mid(ActiveSheet.Cells(1, 1), i, 1))
qq = qq & "ChrW(" & AscW(Mid(ActiveSheet.Cells(1, 1), i, 1)) & ") & "
ActiveSheet.Cells(5, 1) = Left(qq, Len(qq) - 2)
Next i
qqq = Left(qq, Len(qq) - 2)
End Sub

НО qqq= "ChrW(115) & ChrW(252) & ChrW(223) " у меня в текстовом формате , а как сделать его не в текстовом формате чтобы оно вычислялось
...
Рейтинг: 0 / 0
22.04.2014, 19:22
    #38622111
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
marmihalovnaНО qqq= "ChrW(115) & ChrW(252) & ChrW(223) " у меня в текстовом формате , а как сделать его не в текстовом формате чтобы оно вычислялосьУбрать кавычки
...
Рейтинг: 0 / 0
23.04.2014, 09:04
    #38622461
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
VSVLAD,

умный гляжу ну попробуй убери

функцию предложи или примерчик выложи , а пустое болтать - в дет сад иди
...
Рейтинг: 0 / 0
24.04.2014, 22:12
    #38625174
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
marmihalovna, Примерчик написать не сложно, как уже сказали работать с Unicode сложно и не удобно. Пример ниже у меня работает. в А1 содержится имя файла в умляуте

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundW" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Sub T()
    Dim strFileName As String
    strFileName = "D:\" & Range("A1").Value
    
    sndPlaySound StrConv(strFileName, vbUnicode), &H1
End Sub
...
Рейтинг: 0 / 0
28.04.2014, 14:33
    #38627757
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
VSVLAD,

Кланяюсь Вам в ножки ОООГРОМНОЕ СПАСИБО
за примерчик все работает

создаю для сына словарь с озвучкой конкретно только те слова, которые нужны для данной темы по учебнику, а не 1ую тысячу самых употребляемых

озвучка понравилась на сайте http://dict.leo.org/ мягкий приятный женский голос

еще раз ОООГРОМНОЕ СПАСИБО
...
Рейтинг: 0 / 0
28.04.2014, 14:49
    #38627782
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
Словарь простой в excel

вставляешь свои слова: у меня их сам сын набирает 1 столбец слово, 2 столбец перевод не менее 10 слов нажимает кнопочку и погнал учить
высвечивается слова и три варианта ответа, ответил хорошо больше ты этого слова не увидишь, ответил ошибочно слово будет показываться после того как будут показаны все слова.

ошибочные слова будут показываться до тех пор, пока количество правильных ответов не превысит количество ошибочных ответов

а озвучку хочу сделать для того чтобы не показывая слово найти ответ по его звучанию.
...
Рейтинг: 0 / 0
28.04.2014, 19:05
    #38628120
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
marmihalovna, пожалуйста)

Также лучше задекларировать функцию с первым параметром как Long. Так будет правильнее, избавляемся от лишней конвертации, так как VB всегда конвертирует String в ANSI при вызове функций API.
Код: vbnet
1.
2.
3.
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundW" (ByVal lpszSoundName As Long, ByVal uFlags As Long) As Long

'sndPlaySound StrPtr(strFileName), &H1 'Вызывать так
...
Рейтинг: 0 / 0
16.10.2014, 10:40
    #38778271
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
VSVLAD, будь добр подскажи еще моментик

есть готовый файл с именем 1.wav
хочу сохранить(переименовать) файл с именем hören(имя берется из ячейки)

Name "E:\1.wav" As "E:\" & Cells(ActiveCell.Row , ActiveCell.Column) & ".wav"

а получается horen

как сделать именно hören
...
Рейтинг: 0 / 0
16.10.2014, 18:43
    #38779030
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
marmihalovna,

оператор Name (видимо использует ANSI версию функцию API MoveFile), поэтому нужно напрямую вызывать Unicode версию функцию + запретить VB самостоятельно конвертировать строки (а он их конвертирует в ANSI перед вызовом и отдаёт обратно в Unicode, если декларировать как String). И... вообщем декларируем как Long и передаём указатели на строки и работает

Для удобства можно описать отдельную функцию по типу RenameFile и там уже все кишки нарисовать

Код: vbnet
1.
2.
3.
4.
5.
Private Declare Function MoveFileUnicode Lib "kernel32" Alias "MoveFileW" (ByVal lpExistingFileName As Long, ByVal lpNewFileName As Long) As Long

Public Sub Test()
    MoveFileUnicode StrPtr("D:\1.wav"), StrPtr("D:\" & Cells(ActiveCell.Row, ActiveCell.Column) & ".wav")
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
02.03.2016, 11:33
    #39183461
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
Здравия Вам, VSVLAD

очередная моя заморочка наталкивается на возможное отсутствие какой-то подключенной библиотеки

на сей раз скачала сказку на немецком,скачала озвучку к этой сказке на немецком.
накромсала текст на фрагменты по 5-7 слов или до запятой или до союза "и(und)"
накромсала озвучку на фрагменты под фрагменты текста

делаю документ ворда с гиперсылками: выделяю фрагмент текста делаю гиперсылку и подцепляю звуковой файл, текст большой поэтому гиперсылку делаю в макросе VBA, работает на ура там где нет Ä ä Ö ö Ü ü ß

ИмяФайла = fl.Name
' все файлы под номерами и идут попорядку текстовых фрагментов, выделяю № файла
№ИмяФайла = Val(Left(ИмяФайла, 3))
' убираю № файла и расширение, чтобы получить фрагмент текста
ИмяФайла1 = Mid(ИмяФайла, 5, Len(ИмяФайла) - 8)

' нахожу фрагмент текста в общем тексте
Set ФрагментТекста = ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument.Content.End)
ФрагментТекста.Select
ФрагментТекста.Find.Execute FindText:=ИмяФайла1, Wrap:=wdFindStop
If ФрагментТекста.Find.Found = True Then
ФрагментТекста.Select

'делаю гиперсылку
Аддресс = Replace(ИмяФайла, " ", "%20")
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _
Address:=Аддресс, _
SubAddress:="", ScreenTip:="", _
TextToDisplay:=ИмяФайла1

'поверяю гиперсылку
ActiveDocument.Hyperlinks(№Тр).Follow ' запуск ГиперСсылкиОзвучки

и тут, там где Ä ä Ö ö Ü ü ß - ошибка, гиперсылка как бы есть, а неработает
...
Рейтинг: 0 / 0
02.03.2016, 23:15
    #39184330
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
marmihalovna,

Вообще правильнее всего кодировать символы в Escape последовательность, как это делается у вас с пробелом. Он преобразуется в %20. Так нужно поступать и с другими символами, тоже самое касается и русского языка.
...
Рейтинг: 0 / 0
03.03.2016, 10:46
    #39184558
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
VSVLAD,

я конечно извиняюсь но я не поняла про эту штуку Escape

допустим есть текст= "Höre, Fischer, ich bitte dich, laß mich leben,"
имеются ö и ß
как и куда в макросе надо поставить Escape или это будет выглядеть
текст1=Escape(текст)

какая библиотека нужна для Escape
...
Рейтинг: 0 / 0
03.03.2016, 12:00
    #39184641
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
marmihalovna,

я скопировал из вашего поста Ä ä Ö ö Ü ü ß , переименовал некий файл в c:\temp\Ä ä Ö ö Ü ü ß.wav, вставил это же в Ворд, выделил и дал команду к окне Immediate
Код: vbnet
1.
activedocument.Hyperlinks.Add selection.Range ,"c:\temp\" & selection.Text & ".wav"

Создалась рабочая гиперссылка, как видите, без замены пробелов на "%20".
Разбирайтесь со своим кодом, возможно, теряются какие-то символы.
...
Рейтинг: 0 / 0
03.03.2016, 12:24
    #39184698
marmihalovna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
Казанский,

"выделил и дал команду к окне Immediate"
1. в каком окне?
2. что за команда Immediate?

мой фрагмент текста и звуковых файлов
просьба сильно на смеяться на мой код, т.к. я не профэшнлка
https://yadi.sk/d/rgrvp5mHpscRv
...
Рейтинг: 0 / 0
03.03.2016, 12:49
    #39184761
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему VBA süß.xls открывает, а süß.wav
marmihalovna,

* дал команду в окне Immediate
F1 - Immediate Window. Включается с помощью Ctrl+G, используется при отладке или для выполнения макросов, которые можно записать в одну строку и сохранение которых не предполагается.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему VBA süß.xls открывает, а süß.wav / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]