• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2007のVBAを使って、サウンドコントロールのフリーソフトを)

エクセル2007のVBAを使って、サウンドコントロールのフリーソフトを操作する方法

このQ&Aのポイント
  • エクセル2007のVBAを使って、サウンドコントロールのフリーソフトを操作する方法について調べています。
  • 具体的には、「3RVX]というフリーソフトを使用して、パソコンの音量をミュートすることができます。
  • エクセルのVBA(マクロ)でこの機能を実現しようとしていますが、上手くいかないため、解決策を探しています。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

こちら http://www.vector.co.jp/soft/winnt/art/se355641.html でご提供されているMute.vbsというのをちょっと利用させていただいてみたら,なんか出来たっぽいです。 Sub Macro1() ’出典: ’http://www.vector.co.jp/soft/winnt/art/se355641.html Dim dx Set dx = CreateObject("MSWebDVD.MSWebDVD.1") If dx.Volume = -10000 Then  dx.Volume = -5000 Else  dx.Volume = -10000 End If Set dx = Nothing End Sub

doopy
質問者

お礼

原理はまだ完全には理解できていませんが、とりあえず上手くいきました! とても助かりました。ありがとうございました!

その他の回答 (1)

  • mimeu
  • ベストアンサー率49% (39/79)
回答No.1

SendKeys の情報は実行した時点でアクティブなウインドウに送られます。 たとえば直前に、「3RVX」をアクティブにしていても エクセルのマクロを起動した時点でエクセルがアクティブになってしまいますので やっぱり「3RVX」は "{END}" を受け取れないのです。 私はこういう場合 SendKeys の直前に SetForegroundWindow (HWND) APIを使って 「3RVX」をアクティブにしています。 必要な HWND (3RVXのハンドル)は GetWindow APIなどを使って調べます。

doopy
質問者

お礼

丁寧な説明で分かりやすかったです。 上の方の方法を先に試したところ、上手くいったので解決しましたが、 親切にご回答して下さり、本当に助かりました。 ありがとうございます!

関連するQ&A