• ベストアンサー

音楽ファイルが再生できない(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 & "がありません。", 」 とならないのでファイルは見つかっているのだと思います。 何か原因がわかる方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.8

ありゃ。本当だ。 VistaだとWSHで起動する#3の方法使えなくなったんですね。 管理者権限でしょうかね。 APIだと不都合があるんですか?

kuhffd
質問者

お礼

APIでも全然不都合ないです。 ただAPIというとなんだか敷居が高い感じがするので できれば普通のマクロ行ないたかったのですが できなかったため疑問になり質問しました。 何度もありがとうございます。

その他の回答 (7)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.7
kuhffd
質問者

お礼

ありがとうございます。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.6

mplay32.exe が見つからないということではないでしょうか。 mplay32.exeがあるなら、フルパスで記述してみればどうでしょうか。 参考までにVistaでは、下記で鳴りました。 C:\Program Files\Windows Media Player\wmplayer.exe

kuhffd
質問者

お礼

Media Playerの中にmplay32.exeはないですし 検索をかけてもでてきませんでした。 とうことはやはりないのですね。 ありがとうございます。

  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.5

音楽流れないですか。おかしいですね。 再生が始まらない感じですか? そのファイルは普通にダブルクリックしたときは再生されるのでしょうか?

kuhffd
質問者

お礼

たびたびすいません。 APIの方法なら再生できるし、ダブルクリックでも再生は可能です。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

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

kuhffd
質問者

お礼

うーん これらの文字は入れてないですね。。。 ありがとうございます。

  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.3

見る限り別に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

kuhffd
質問者

お礼

いろいろな方法があるのですね! ただWindows Media Playerは起動するのですが音楽が流れません。。。 もっと試してみます。ありがとうございます。

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

| 結果は同じでした。 そうですか、、mplay32.exeがないのでは? DOS窓を開き、 mplay32.exe <ファイル名> をじかに実行してみましょう。 'mplay32.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出たらパスが通っていないか、mplay32.exe自身がないことが疑われますが、、

kuhffd
質問者

お礼

DOS窓ってコマンドプロンプトのことですよね? やってみましたがおっしゃるとおり 'mplay32.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 になりました。 'mplay32.exe' を検索をかけてみましたがヒットしませんでした。 ということはパソコンに入ってないと言うことですね。 再度ありがとうございます。

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.1

"でかこいましょ Shell "mplay32.exe /play /close """ & SoundFile & """" 漢字や空白を含むファイル名だったときは " で囲むよね? うまくいかなかったらごめん

kuhffd
質問者

お礼

うーん 結果は同じでした。 ありがとうございます。

関連するQ&A

専門家に質問してみよう