dポイントプレゼントキャンペーン実施中!

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

A 回答 (8件)

ありゃ。

本当だ。
VistaだとWSHで起動する#3の方法使えなくなったんですね。
管理者権限でしょうかね。
APIだと不都合があるんですか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/18 21:23
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/04/18 21:20

mplay32.exe が見つからないということではないでしょうか。


mplay32.exeがあるなら、フルパスで記述してみればどうでしょうか。

参考までにVistaでは、下記で鳴りました。
C:\Program Files\Windows Media Player\wmplayer.exe
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/18 10:40

音楽流れないですか。

おかしいですね。
再生が始まらない感じですか?

そのファイルは普通にダブルクリックしたときは再生されるのでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/18 00:32

Windowsでファイル名で使えない文字に/が入っているのでは。


質問の例は全角/なのかな。
APIでは動くとなると??
http://blogs.dion.ne.jp/tmikami/archives/6570815 …
http://www.sharp.co.jp/support/mebius/tips/tips- …
http://beefway.hp.infoseek.co.jp/prog/filename.h …
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/18 00:31

見る限り別に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
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/17 23:05

| 結果は同じでした。


そうですか、、mplay32.exeがないのでは?

DOS窓を開き、
mplay32.exe <ファイル名>
をじかに実行してみましょう。

'mplay32.exe' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と出たらパスが通っていないか、mplay32.exe自身がないことが疑われますが、、
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/17 22:17

"でかこいましょ



Shell "mplay32.exe /play /close """ & SoundFile & """"

漢字や空白を含むファイル名だったときは " で囲むよね?

うまくいかなかったらごめん
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/04/17 21:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!