Office Guru

Zenelejátszás Excelből - Jokermegoldás programfuttatáshoz

2017. április 08. - Office Guru

Ha már hétvége és napsütés (kissé masszívabb szélrohamokkal), akkor itt a blog hasábjain is vegyük kicsit szórakoztatóbbra az irányt, így a mai posztban ennek megfelelően (a korábbi Google-keresős vagy YouTube-lejátszós írások után) Excelből történő zenelejátszás kerül röviden terítékre. Magát a műveletet egy VBA-kódsorral fogjuk elvégezni, de elsőként hajtsuk végre a megfelelő előkészületeket, kezdjük mindjárt a playlistünkkel, amelyből választhat majd a kedves user.

play1.jpgCsinálhatjuk ezt kézzel, csinálhatjuk makróval, de csinálhatjuk command promptból is, a lényeg, hogy minél egyszerűbben készítsük el a playlistet (ez lehet egy könyvtárban lévő összes fájl listázása stb.).

Folytatásként csináljunk valamiféle kis designt a lejátszónknak, majd adjunk hozzá egy Data Validation Listet a fájlokból való választás lehetőségének létrehozása okán:

play3.jpg
Itt most nem töltöttem azzal időt, hogy a meghajtó (könyvtár) nevét eltávolítsam, de értelemszerűen még tovább lehet csiszolni ezen a listán.

Aztán a kis Play gombunkhoz (amelyet akár elkészíthetünk saját magunk is néhány alakzat felhasználásával) rendeljük hozzá a makrónkat a jobb gombbal való kattintással előhívható Context menü Assign Macro utasításával:

play2.jpg
Ezután már nincs más hátra, mint a VBA-kódunk megalkotása, amelyhez ALT+F11 lenyomásával ballagjunk át szépen a VBA-editorba. A kód hosszúságát tekintve roppant egyszerű, úgyhogy be is illesztem ide egy az egyben:

Sub MP3player()
ActiveSheet.OLEObjects.Add(Filename:=ActiveCell.Text, Link:=True).Select
Selection.Verb
Selection.Delete
End Sub

Azt ugye már korábbi posztokból megtanultuk, hogy az OLEObjects általában egy Active-X controlt, egy linkelt vagy beágyazott objektumot testesít meg, zárójelben mögötte nevesíthetjük is, hogy éppen melyiket. Az OLEObjects Verb metódusával pedig igazából műveletet tudunk végezni ezzel az objektummal, elég sok lehetőségünk van, amelyeket azonban az adott objektum forrásprogramja is meghatároz. Amennyiben nem adjuk meg a Verb paraméterét, akkor a default műveletet, a szerkesztést, lejátszást stb. fogja végrehajtani, amire pont szükségünk is van jelen esetben.

Azaz kódunk első sorában az aktív sheetünkön létrehozunk egy objektumot, amelynek FileName paramétere (tehát neve) az aktív cellánkban szereplő érték lesz (tehát a kiválasztott mp3 fájl teljes útvonala), a Link paramétert pedig azért kell True értékre állítanunk, hogy ez az új OLE objektum a FileName paraméterben megadott fájlhoz linkelésre is kerüljön. Ezt utána értelemszerűen kiválasztjuk, majd megy rá a Verb metódus, amiről fentebb illetve korábbi posztokban már írtam. Ha ez megtörtént, akkor töröljük az objektumot a kódunk harmadik sorával.

És innentől kezdve már működik is a dolog, ha kiválasztjuk a listából a megfelelő számot és a Play gombra kattintunk, már indul is az alapértelmezett lejátszóval a zeneszámunk. Értelemszerűen hibakezelésre még szükség van a kódban, ahogy az Application.ScreenUpdating babrálása is jól jöhet, de a lelke ez a három sor az egész műveletnek. És ami a legjobb az egészben, az az, hogy ez nem zenére működik csak, bármilyen fájlokkal meg tudjuk csinálni ugyanezt, azoknál kiválasztás esetén értelemszerűen az alapértelmezetten hozzárendelt program indul - txt-nél pl. a NotePad és így tovább.

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr5612410247

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Gnosis 2017.04.10. 09:27:25

No, ezt soha nem gondoltam volna, hogy ezen az oldalon Fear Factory-cuccba fogok belefutni. :) Gigalike!

Office Guru 2017.04.10. 19:10:03

@Gnosis: Én meg nem gondoltam volna, hogy valakinek ez feltűnik:) Gratz!
süti beállítások módosítása