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

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

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

используйте chrw для формирования имени файла
...
Рейтинг: 0 / 0
Почему VBA süß.xls открывает, а süß.wav
    #38621324
marmihalovna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Почему VBA süß.xls открывает, а süß.wav
    #38622111
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marmihalovnaНО qqq= "ChrW(115) & ChrW(252) & ChrW(223) " у меня в текстовом формате , а как сделать его не в текстовом формате чтобы оно вычислялосьУбрать кавычки
...
Рейтинг: 0 / 0
Почему VBA süß.xls открывает, а süß.wav
    #38622461
marmihalovna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLAD,

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

функцию предложи или примерчик выложи , а пустое болтать - в дет сад иди
...
Рейтинг: 0 / 0
Почему VBA süß.xls открывает, а süß.wav
    #38625174
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Почему VBA süß.xls открывает, а süß.wav
    #38627757
marmihalovna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLAD,

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

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

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

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

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

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

а озвучку хочу сделать для того чтобы не показывая слово найти ответ по его звучанию.
...
Рейтинг: 0 / 0
Почему VBA süß.xls открывает, а süß.wav
    #38628120
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Почему VBA süß.xls открывает, а süß.wav
    #38778271
marmihalovna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLAD, будь добр подскажи еще моментик

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

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

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

как сделать именно hören
...
Рейтинг: 0 / 0
Почему VBA süß.xls открывает, а süß.wav
    #38779030
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Период между сообщениями больше года.
Почему VBA süß.xls открывает, а süß.wav
    #39183461
marmihalovna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравия Вам, 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
Почему VBA süß.xls открывает, а süß.wav
    #39184330
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marmihalovna,

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

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

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

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

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

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

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

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

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


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