Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mp3 in Excel abspielen

Forumthread: mp3 in Excel abspielen

mp3 in Excel abspielen
25.12.2005 22:42:45
Tobias Schleifer
Hallo zusammmen,
ich habe eine ganz verrückte Idee (habe aber keine Idee, ob das überhaupt umsetzbar ist):
Gibt es die Mögöichkeit in Excel eine mp3-Datei automatisch abspielen zu lassen, wenn in einem bestimmten Feld (z.B. A1) der Feldinhalt den Wert 20 übersteigt ?
Gruß
Tobias
PS: Ich bin neu in diesem Forum und ganz begeistert, was man in Excel so alles realisieren kann.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mp3 in Excel abspielen
25.12.2005 23:56:39
{Boris}
Hi Tobias,
Gibt es die Mögöichkeit in Excel eine mp3-Datei automatisch abspielen zu lassen...
Ja - die Möglichkeit gibt es. Ist aber verdammt kompliziert. Ohne API kommst du dabei nicht aus.
Grüße Boris
AW: mp3 in Excel abspielen
26.12.2005 00:24:13
Josef Ehrensberger
Hallo Tobias!
Ich nehme mal an, das der Wert in "A1" durch eine Formel errechnet wird!
Achte darauf, wo die einzelnen Codeteile hingehören!
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Deactivate()

' MP3-Wiedergabe stoppen
MP3_Stop "MyAlias"

End Sub


' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit
Const myMP3 As String = "F:\iTunes\Bob Seger\Greatest Hits\09 Against The Wind.mp3" '<<-- deine mp3 - anpassen

Dim blnDontPlayAgain As Boolean

Private Sub Worksheet_Calculate()
If [A1] > 20 Then
  If Not blnDontPlayAgain Then
    
    ' MP3 abspielen
    MP3_Play myMP3, "MyAlias"
    
    blnDontPlayAgain = True
    
  End If
  
Else
  
  ' MP3-Wiedergabe stoppen
  MP3_Stop "MyAlias"
  
  blnDontPlayAgain = False
  
End If
End Sub


' **********************************************************************
' Modul: mdlPlayMP3 Typ: Allgemeines Modul
' **********************************************************************

' Modul MP3-Play and Stop via API
'Quelle: http://www.vbarchiv.net/archiv/tipp_499.html

Option Explicit

' zunächst die benötigte API-Deklaration
Private Declare Function mciSendString Lib "winmm.dll" _
  Alias "mciSendStringA" (ByVal lpszCommand As String, _
  ByVal lpszReturnString As String, _
  ByVal cchReturnLength As Long, _
  ByVal hwndCallback As Long) As Long

Private Declare Function GetShortPathName Lib "kernel32" _
  Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
  ByVal lpszShortPath As String, _
  ByVal cchBuffer As Long) As Long

' MP3-Datei abspielen
Public Function MP3_Play(ByVal sFile As String, _
  ByVal sAlias As String) As Boolean


Dim bResult As Boolean

' Dateinamen in DOS 8.3 Format, da z.B. Sonderzeichen
' wie Leerzeichen Probleme machen
Dim sBuffer As String
Dim lResult As Long

sBuffer = Space$(255)
lResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))

If lResult <> 0 Then
  sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
  
  ' MCI öffnen
  lResult = mciSendString("open " & sFile & _
    " type MPEGVideo alias " & sAlias, 0, 0, 0)
  
  If lResult = 0 Then
    ' MP3 abspielen
    If mciSendString("play " & sAlias & _
      " from 0", 0, 0, 0) = 0 Then
      bResult = True
    End If
  End If
End If

MP3_Play = bResult
End Function


' Wiedergabe stoppen und MCI schließen
Public Sub MP3_Stop(ByVal sAlias As String)
mciSendString "stop " & sAlias, 0, 0, 0
mciSendString "close " & sAlias, 0, 0, 0
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
Klasse! Aber kleine Frage:
26.12.2005 00:48:16
{Boris}
Hi Sepp,
was muss ich machen, damit die MP3 stoppt?
Sollte sie ja eigentlich tun, wenn A1 <=20 ist - tut es aber nicht...
Grüße Boris
Sorry - alles klar!
26.12.2005 00:49:58
{Boris}
Hi Sepp,
Fehler behoben (lag bei mir).
Grüße Boris
AW: mp3 in Excel abspielen
26.12.2005 11:37:38
Tobias Schleifer
Hallo Sepp,
danke für die schnelle Antwort. Problem ist nur, dass ich von der Antwort erschlagen bin und nur einen Bruchteil verstehe.
Richtig ist, dass es sich bei A1 um ein Feld handelt, welches durch eine Formel errechnet wird.
Mir ist nicht genau klar, wo und wie ich deine Vorlage nun einbinden muss (Extras, Makro, Virtual Basic Editor und dann das Blatt auswählen, wo der Wert in A1 steht????) Aber was bedeutet dann "allgemeines Modul", wo muss ich das hinkopieren ?
Danke für die Hilfe und Gruß
Tobias
Anzeige
AW: mp3 in Excel abspielen
26.12.2005 11:41:03
Reinhard
Hi Tobias,
Alt+F11, Einfügen---Modul
Das ist das allgemeine Modul
Doppelklick auf DieseArbeitsmappe da den Code von DieseArbeitsmappe
Doppelklick auf tabelle1 da den Code von Tabelle1
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
AW: mp3 in Excel abspielen
26.12.2005 12:10:40
Tobias Schleifer
Ich bekomme nun einen Fehler beim Kompilieren, dass die Variable blnDontPlayAgain nicht definiert sei. Ich glaube es ist einfacher, wenn ich mein Dokument mal mitschicke. Innerhalb der Excel-Datei habe ich ein Arbeitsblatt "Tabelle1" eingerichtet, wo eben in A1 ein Wert steht (für diesen Test jetzt einfach die Summe aus (a2-a10). Es geht mir in dieser Datei um Sportwetten, später würde ich den Gewinn aus der aktuellen Woche da rein tun. Damit ich die Datei hier ins Forum stellen kann, habe ich sie deutlich abgespeckt.

Die Datei https://www.herber.de/bbs/user/29542.xls wurde aus Datenschutzgründen gelöscht

Meine mp3-Datei, die abgespielt werden soll, habe ich jetzt mal als abc.mp3 auf C: abgespeichert.
Anzeige
AW: mp3 in Excel abspielen
26.12.2005 12:15:46
Josef Ehrensberger
Hallo Tobias!
https://www.herber.de/bbs/user/29543.xls
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: mp3 in Excel abspielen
26.12.2005 13:08:55
Tobias Schleifer
Super !!!
Mir steht der Mund offen vor Staunen. Ich bin beeindruckt.
Danke und Frohe Rest-Weihnachten an alle
Tobias
;
Anzeige

Infobox / Tutorial

mp3 in Excel abspielen


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic Editor
    Drücke Alt + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein allgemeines Modul hinzu
    Klicke im Menü auf Einfügen und wähle Modul aus. Dies wird ein neues Modul erstellen.

  3. Füge den Code zum Abspielen der MP3-Datei ein
    Kopiere den folgenden Code in das neu erstellte Modul:

    Option Explicit
    
    Private Declare Function mciSendString Lib "winmm.dll" _
       Alias "mciSendStringA" (ByVal lpszCommand As String, _
       ByVal lpszReturnString As String, ByVal cchReturnLength As Long, _
       ByVal hwndCallback As Long) As Long
    
    Private Declare Function GetShortPathName Lib "kernel32" _
       Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
       ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
    
    Public Function MP3_Play(ByVal sFile As String, ByVal sAlias As String) As Boolean
       Dim bResult As Boolean
       Dim sBuffer As String
       Dim lResult As Long
    
       sBuffer = Space$(255)
       lResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))
    
       If lResult <> 0 Then
           sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
           lResult = mciSendString("open " & sFile & " type MPEGVideo alias " & sAlias, 0, 0, 0)
    
           If lResult = 0 Then
               If mciSendString("play " & sAlias & " from 0", 0, 0, 0) = 0 Then
                   bResult = True
               End If
           End If
       End If
       MP3_Play = bResult
    End Function
    
    Public Sub MP3_Stop(ByVal sAlias As String)
       mciSendString "stop " & sAlias, 0, 0, 0
       mciSendString "close " & sAlias, 0, 0, 0
    End Sub
  4. Füge den Berechnungscode in das Arbeitsblatt ein
    Doppelklicke auf DieseArbeitsmappe und füge den folgenden Code ein:

    Private Sub Workbook_Deactivate()
       MP3_Stop "MyAlias"
    End Sub
  5. Füge den Überwachungs-Code in das spezifische Arbeitsblatt ein
    Doppelklicke auf das Arbeitsblatt, in dem sich die Zelle A1 befindet, und füge den folgenden Code ein:

    Private Sub Worksheet_Calculate()
       If [A1] > 20 Then
           MP3_Play "C:\DeinPfad\deineDatei.mp3", "MyAlias"
       Else
           MP3_Stop "MyAlias"
       End If
    End Sub
  6. Teste die Funktionalität
    Ändere den Wert in A1 und beobachte, ob die MP3-Datei entsprechend abgespielt wird.


Häufige Fehler und Lösungen

  • Fehler: Variable blnDontPlayAgain nicht definiert
    Stelle sicher, dass du alle Variablen im Code korrekt deklariert hast. Wenn du den von Josef bereitgestellten Code verwendest, sollte dies nicht der Fall sein.

  • MP3 wird nicht abgespielt
    Überprüfe den Pfad zur MP3-Datei und stelle sicher, dass die Datei existiert und der Pfad korrekt ist.

  • Abspielen stoppt nicht
    Stelle sicher, dass der Code zum Stoppen der Wiedergabe korrekt implementiert ist. Überprüfe die Bedingungen in der Worksheet_Calculate-Subroutine.


Alternative Methoden

  1. Verwendung von ActiveX-Steuerelementen
    Du kannst ein ActiveX-Steuerelement verwenden, um Audio in Excel abzuspielen. Dazu musst du das Steuerelement in dein Arbeitsblatt einfügen und den entsprechenden Code zur Steuerung der Wiedergabe hinzufügen.

  2. Excel-Add-Ins
    Es gibt Add-Ins, die die Integration von Audio- und Video-Dateien in Excel erleichtern können. Diese sind allerdings oft kostenpflichtig.


Praktische Beispiele

  • Sportwetten-Tracker
    Wenn du ein Arbeitsblatt für Sportwetten erstellst, kannst du die MP3-Wiedergabe verwenden, um Benachrichtigungen zu geben, wenn bestimmte Werte erreicht werden, wie z.B. ein Gewinn von über 20 Euro.

  • Benachrichtigungssystem
    Nutze die MP3-Funktion als akustisches Signal für verschiedene Ereignisse in deinen Excel-Daten, z.B. wenn ein Zielwert überschritten wird.


Tipps für Profis

  • Dokumentiere deinen Code
    Kommentiere deinen VBA-Code ausführlich, damit du und andere Benutzer in Zukunft leichter verstehen, was jeder Teil des Codes bewirken soll.

  • Verwende Variablen sinnvoll
    Achte darauf, Variablen klar zu benennen und sie nur dort zu verwenden, wo sie notwendig sind, um die Lesbarkeit zu erhöhen.


FAQ: Häufige Fragen

1. Kann ich mehrere MP3-Dateien abspielen?
Ja, du kannst mehrere MP3-Dateien abspielen, indem du unterschiedliche Aliase verwendest und die entsprechenden Abspielbefehle im Code anpasst.

2. Muss ich etwas an den Excel-Einstellungen ändern?
In der Regel musst du die Makros aktivieren, um den VBA-Code auszuführen. Gehe dazu in die Excel-Optionen und aktiviere die Makros.

3. Welche Excel-Version benötige ich?
Der vorgestellte Code sollte in den meisten modernen Excel-Versionen funktionieren, insbesondere ab Excel 2010 und höher.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige