Registriert seit: 12.01.2021
Version(en): 2019
Hallo,
git es eine Möglichkeit nach einer bestimmten Bedingung einen Sound abzuspielen?
Beispielsweise in der Art:
Code:
=@WENN(LÄNGE(A2)<>13;AbspielenMP3();"")
Danke
Registriert seit: 16.04.2014
Version(en): xl2016/365
Hola,
verlinkst du bitte deine Fragen in den verschiedenen Foren gegenseitig?
Danke.
Gruß,
steve1da
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
warum =@...?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 22.11.2019
Version(en): 365
12.01.2021, 18:56
(Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2021, 18:56 von volti.)
Hallo human,
einfaches Beispiel spezielles Abspielen einer MP3-Datei.
Code:
Option Explicit
Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" ( _
ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As LongPtr) As Long
Private Declare PtrSafe Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" ( _
ByVal lpszLongPath As String, ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub PlayMyMP3(sFile As String)
' Spielt ein MP3-File ab
Dim iOldPos As Long
Dim sBuffer As String * 255, sPos As String * 256
If GetShortPathName(sFile, sBuffer, LenB(sBuffer)) <> 0 Then _
sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
' MCI öffnen
If Dir$(sFile) <> "" Then
If mciSendString("open " & Chr$(34) & sFile & Chr$(34) & " type MPEGVideo alias MyMP3", 0, 0, 0) = 0 Then
' MP3 abspielen
mciSendString "play MyMP3", 0, 0, 0
Do
Sleep 200: DoEvents
mciSendString "status MyMP3 position", sPos, Len(sPos), 0&
If Val(sPos) = iOldPos Then Exit Do
iOldPos = Val(sPos)
Loop
' MP3 schließen
mciSendString "close MyMP3", 0, 0, 0
End If
Else
MsgBox "Die MP3-Datei '" & sFile & "' wurde nicht gefunden!", vbCritical, "MP3 abspielen"
End If
End Sub
Sub AbspielenMP3()
PlayMyMP3 "D:\IRD\Black Night.mp3"
End Sub
_________
viele Grüße
Karl-Heinz
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
12.01.2021, 19:07
(Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2021, 19:10 von schauan.)
Hallöchen,
Du musst dann das Sub noch umbenennen in
Public Function AbspielenMP3()
Allerdings rechnet die Funktion so lange, wie die MP3 läuft. Nimm also nicht In A Gadda Davida von Iron Butterfly oder Echoes von Pink Floyd

Solltest Du etwas längeres abspielen wollen würde ich eine Titelliste erzeugen und mit der shell an den Mediaplayer übergeben oder etwas in der art. Siehe dazu auch mein Beispiel
Excel-MP3-Lister-Player-Playlist
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 22.11.2019
Version(en): 365
Hallo zusammen,
hier zur Ergänzung mal noch folgender Tipp:
Man kann mit dem mciSendString auch gezielt Ausschnitte aus längeren Songs abspielen. Anfang und Ende millsekundengenau setzen.
Mit o.g. Code kann leicht ein Stopp erreicht werden (Muss man halt vorher irgendwie abstoppen und sich merken):
If Val(sPos) >= 3000 Then Exit Do
Gruß Karl-Heinz
Registriert seit: 16.04.2014
Version(en): xl2016/365
Registriert seit: 22.11.2019
Version(en): 365
12.01.2021, 20:18
(Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2021, 20:24 von volti.)
Hallo Schauan,
Allerdings rechnet die Funktion so lange, wie die MP3 läuftDas Ganze könnte auch im Hintergrund auf Windows-Ebene ablaufen. Dann aber ohne die Do-Schleife...Theoretisch kann man mehrere MP3 (z.B. auch Songs) gleichzeitig ablaufen lassen und/oder sich das Ganze als Hintergrundmusik anhören.Immer wieder nur den Trommelwirbel des von Dir genannten Songs.
Natürlich kann auch die Lautstärke geregelt werden.VG KH