Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13237 / 13646 ツリー ←次へ | 前へ→

【6396】メディアプレイヤーを終了させたいのですが ひで 03/6/27(金) 11:53 質問
【6413】Re:メディアプレイヤーを終了させたいのです... JuJu 03/6/27(金) 18:56 回答
【6414】Re:メディアプレイヤーを終了させたいのです... ichinose 03/6/27(金) 19:57 回答
【6415】Re:メディアプレイヤーを終了させたいのです... ichinose 03/6/27(金) 20:01 発言
【6426】Re:メディアプレイヤーを終了させたいのです... ひで 03/6/29(日) 18:53 お礼
【6438】・・・とくべつな〜オンリーワン♪ ひで 03/6/30(月) 9:29 お礼

【6396】メディアプレイヤーを終了させたいのですが
質問  ひで  - 03/6/27(金) 11:53 -

引用なし
パスワード
   みなさんこんにちは
よろしくお願いします

メディアプレイヤーを呼び出してある音(音楽)を
10秒間だけだし、プレイヤーを終了(閉じたい)させたいのですが
終了のしかたがわかりません
どなたか教えていただけないでしょうか
お願いいたします。

Sub test3xp() 'winXp xls2002

Shell "C:\Program Files\Windows Media Player\wmplayer C:\NewStories.wma", vbHide
Application.Wait (Now + TimeValue("00:00:10"))

'Media Playerを終了

End Sub

【6413】Re:メディアプレイヤーを終了させたいので...
回答  JuJu E-MAIL  - 03/6/27(金) 18:56 -

引用なし
パスワード
   ひでさん、こんにちはぁ

>メディアプレイヤーを呼び出してある音(音楽)を
>10秒間だけだし、プレイヤーを終了(閉じたい)させたいのですが
>終了のしかたがわかりません

起動しているアプリケーションを終了させるにはAPIが一番手っ取り早いです。

こんな感じです。

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_CLOSE = &H10

Sub test3xp() 'winXp xls2002

  Shell "C:\Program Files\Windows Media Player\wmplayer C:\NewStories.wma", vbHide
  Application.Wait (Now + TimeValue("00:00:10"))

'Media Playerを終了
  SendMessage FindWindow("WMPlayerApp", vbNullString), WM_CLOSE, 0&, ByVal 0&
End Sub

多分、メディアプレーヤ9でしか動作しません。

では次のバージョンに変わったらどうしましょう?
その都度改造するのも、手間ですよね。

方法はいろいろありますが、アプリケーションに依存しない技術ならMCIと言う物があります。
メディアプレーヤ7ぐらい以降が入っていれば、WMAファイルもMCIで再生できます。
(結果的にメディアプレーヤのライブラリを使っていますが、入り口が共通なので汎用性があります)

いまどきなら、メディアプレーヤコンポーネントを使う方法もあります。

ではではぁ

【6414】Re:メディアプレイヤーを終了させたいので...
回答  ichinose  - 03/6/27(金) 19:57 -

引用なし
パスワード
   ▼ひで さん:
こんばんは。
>みなさんこんにちは
>よろしくお願いします
>
>メディアプレイヤーを呼び出してある音(音楽)を
>10秒間だけだし、プレイヤーを終了(閉じたい)させたいのですが
>終了のしかたがわかりません
>どなたか教えていただけないでしょうか
>お願いいたします。
>
>Sub test3xp() 'winXp xls2002
>
>Shell "C:\Program Files\Windows Media Player\wmplayer C:\NewStories.wma", vbHide
>Application.Wait (Now + TimeValue("00:00:10"))
>
>'Media Playerを終了
>
>End Sub
本家メディアプレーヤーを使用するのではなく、
メディアプレーヤーコントロールを使用してみてはどうですか?
その他のコントロールに「Windows Media Player」がありますから、チェックして
フォームに貼り付けてください。
'===============================
Sub test()
  Dim st As Date
  Load UserForm1
  UserForm1.MediaPlayer1.Filename = "D:\家庭用\世界に一つだけの花(カラオケ).WAV"
  st = Now + TimeValue("00:00:10")
  Do Until Now >= st
   DoEvents
   Loop
  Unload UserForm1
End Sub
探ってみればいろんな方法がありそうですが、上記のコードでもいけそうです。
ちなみに私が練習中の歌です。ははっ・・・。

【6415】Re:メディアプレイヤーを終了させたいので...
発言  ichinose  - 03/6/27(金) 20:01 -

引用なし
パスワード
   JuJuさん、こんばんは。

投稿画面開いて、席をはずしていたのでJuJuさん投稿しているのに
気が付きませんでした。

ひでさん

そのコンポーネントの方です。

【6426】Re:メディアプレイヤーを終了させたいので...
お礼  ひで  - 03/6/29(日) 18:53 -

引用なし
パスワード
   ▼ichinose さん JuJuさん、こんばんは。

回答ありがとうございます!

返事がおそくなりすいません。

返事が遅くなった上に、今確認できない状態
なので明日トライさせていただきたいと
思います、本当に申し訳ないです
ごめんなさい。

【6438】・・・とくべつな〜オンリーワン♪
お礼  ひで  - 03/6/30(月) 9:29 -

引用なし
パスワード
   ▼ichinose さん JuJuさん おはようございます

JuJuさんのAPI・ichinoseさんのコンポーネント
どちらもすごいです〜!
思ったとおりのことができました
ありがとうございました、感謝・感謝です。

またエクセルでの楽しみが広がりました
ほんとうにありがとうございました。

ps・コード実行したらichinose さんの
   歌声が聴こえてきましたよ〜
   (私の頭の中で・・・)

13237 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free