「平成」を感じるもの

エクセル2007でVBAをプログラミングして使っています。
2010で同じVBAを走らすと
Public Declare Function apisndPlaySound Lib "WINMM" Alias "sndPlaySoundA" _
(ByVal FileName As String, ByVal SND_ASYNC As Long) As Long
とSOUNDの記述の宣言の Function のところで強調表示が出てエラーになります。
2007、2003等ではエラーは出ず使えたのですが、書き換える必要があるようです。
前に進めず困っています。どなたかご教授をよろしくお願いします。

「エクセル2010 VBAのサウンドの宣言」の質問画像

A 回答 (1件)

ずっと昔からのものをオリジナルのままで使ってみたらどうでしょう。


32ビットOSなら問題なく動作します。64ビットOSだとたぶんだめです。
Windows8(32ビット)、Excel2013でも動作します。
ただし、これらはWAVファイルしか再生できなかったはずです。

Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(lpszSoundName As Any, ByVal uFlags As Long)As Long

32ビット用にはこちらが推奨されています。64ビットOSだとどうか?
Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

再生するファイルの種類を増やしたいなら、mcisendstringとかmediaolayerコントリールを使うといいです。
    • good
    • 0
この回答へのお礼

ご回答いただき有難うございます。ご返事が遅れお詫びします。
その後他のPC数台の64ビット版で試したところエラーにならず動くものですから、問題のPCだけの問題だったかなと思い放置していました。この事例の場合、データをGoogle Drive で転送したのでデータがくずれた可能性も考えられ調査中です。ご丁寧なアドバイス有難うございました。

お礼日時:2013/02/28 09:55

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


おすすめ情報