- ベストアンサー
音楽ファイルが再生できない(VBA)
http://qa.nou-college.net/qa4877134.html の続きですが Sub Sample1() Dim SoundFile As String SoundFile = "C:\Users\Music\サザンオールスターズ/希望の轍.mp3" If Dir(SoundFile) = "" Then MsgBox SoundFile & vbCrLf & "がありません。", vbExclamation Exit Sub End If Shell "mplay32.exe /play /close " & SoundFile End Sub を実行すると「ファイルが見つかりません」となります。 他のMP3ファイルでも同じです。 APIを使う方法なら成功しました。 「MsgBox SoundFile & vbCrLf & "がありません。", 」 とならないのでファイルは見つかっているのだと思います。 何か原因がわかる方よろしくお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
ありゃ。本当だ。 VistaだとWSHで起動する#3の方法使えなくなったんですね。 管理者権限でしょうかね。 APIだと不都合があるんですか?
その他の回答 (7)
- xls88
- ベストアンサー率56% (669/1189)
mplay32.exeとは http://art2006salt.blog60.fc2.com/blog-entry-571.html
お礼
ありがとうございます。
- xls88
- ベストアンサー率56% (669/1189)
mplay32.exe が見つからないということではないでしょうか。 mplay32.exeがあるなら、フルパスで記述してみればどうでしょうか。 参考までにVistaでは、下記で鳴りました。 C:\Program Files\Windows Media Player\wmplayer.exe
お礼
Media Playerの中にmplay32.exeはないですし 検索をかけてもでてきませんでした。 とうことはやはりないのですね。 ありがとうございます。
- kenpon24
- ベストアンサー率64% (66/102)
音楽流れないですか。おかしいですね。 再生が始まらない感じですか? そのファイルは普通にダブルクリックしたときは再生されるのでしょうか?
お礼
たびたびすいません。 APIの方法なら再生できるし、ダブルクリックでも再生は可能です。
- imogasi
- ベストアンサー率27% (4737/17069)
Windowsでファイル名で使えない文字に/が入っているのでは。 質問の例は全角/なのかな。 APIでは動くとなると?? http://blogs.dion.ne.jp/tmikami/archives/6570815.html http://www.sharp.co.jp/support/mebius/tips/tips-zz16.htm http://beefway.hp.infoseek.co.jp/prog/filename.html
お礼
うーん これらの文字は入れてないですね。。。 ありがとうございます。
- kenpon24
- ベストアンサー率64% (66/102)
見る限り別にmplay32で再生する必要はなさそうですね。 WSHを使って、関連付けられたアプリケーションで開くこともできますよ。 Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") 'バックグラウンドで流すイメージなら、vbNormalFocuをvbMinimizedNoFocusする WSH.Run "rundll32.exe url.dll, FileProtocolHandler " & _ SoundFile, vbNormalFocus, False Set WSH = Nothing Exit Sub
お礼
いろいろな方法があるのですね! ただWindows Media Playerは起動するのですが音楽が流れません。。。 もっと試してみます。ありがとうございます。
- phoenix343
- ベストアンサー率15% (296/1946)
| 結果は同じでした。 そうですか、、mplay32.exeがないのでは? DOS窓を開き、 mplay32.exe <ファイル名> をじかに実行してみましょう。 'mplay32.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出たらパスが通っていないか、mplay32.exe自身がないことが疑われますが、、
お礼
DOS窓ってコマンドプロンプトのことですよね? やってみましたがおっしゃるとおり 'mplay32.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 になりました。 'mplay32.exe' を検索をかけてみましたがヒットしませんでした。 ということはパソコンに入ってないと言うことですね。 再度ありがとうございます。
- phoenix343
- ベストアンサー率15% (296/1946)
"でかこいましょ Shell "mplay32.exe /play /close """ & SoundFile & """" 漢字や空白を含むファイル名だったときは " で囲むよね? うまくいかなかったらごめん
お礼
うーん 結果は同じでした。 ありがとうございます。
お礼
APIでも全然不都合ないです。 ただAPIというとなんだか敷居が高い感じがするので できれば普通のマクロ行ないたかったのですが できなかったため疑問になり質問しました。 何度もありがとうございます。