• 締切済み

VBAでDVDのトレイを開く。、

VBAの初心者です コマンドボタンのクリックでDVDのトレイを開く部分で フリーソフトのコード: Dim wmp Set wmp = CreateObject("WMPlayer.OCX") wmp.cdromcollection.item(0).eject() をそのままコマンドボタンプロシージャに張り付けたところ3行目の wmp.cdromcollection.item(0).eject()のところで「コンパイルエラー・構文エラー」 が出ます。解決法があれば教えてください。

みんなの回答

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

バージョンは、Windows Media Player のヘルプを クリックするとバージョンの項があります。それを クリックして調べてみてください。

denka3
質問者

補足

一般的にヘルプでバージョンが分かることは知っていますが、 何故か、WMPにヘルプの項目がありません。尚、使用中の パソコンは1年半前に買ったVAIOのVPCEB17FJ(新品)という 機種でOSはWindows7です。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.5

Windows Media Playerが起動できるならば、 そのバージョンを調べてみてください。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

もう一つ調べてみてください。以下のフォルダに、 C:\WINDOWS\system32 wmp.dll はありますか? また、Windows Media Player は起動できますか?

denka3
質問者

補足

wmp.dllはあります。Windows Media Player は起動できますが、バージョンの調べ方がわかりません。 尚、勝手ながら、次のご回答を見られるのは、明日(29日)午前11時ごろになると思われます。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

以下のフォルダに、 C:\Program Files\Windows Media Player wmplayer.exe があるか、確認してみてください。

denka3
質問者

補足

wmplayer.exeはありません。wmplayerはあります。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

WMPlayer.OCX.7 としていましたが、バージョンの違いがあるかもしれないので、 WMPlayer.OCX としてみてください。 それと、最後に Set wmp = Nothing End Sub のように、 Set wmp = Nothing を付け加えておいてください。

denka3
質問者

補足

再回答ありがとうございます (1) Private Sub CommandButton1_Click() Dim wmp Dim cdromCol Dim i Set wmp = CreateObject("WMPlayer.OCX") Set cdromCol = wmp.cdromCollection For i = 0 To cdromCol.Count - 1 cdromCol.Item(i).Eject Next Set wmp = Nothing End Sub (2) Private Sub CommandButton1_Click() Dim wmp Dim cdromCol Dim i Set wmp = CreateObject("WMPlayer.OCX") Set cdromCol = wmp.cdromCollection If cdromCol.Count >= 1 Then cdromCol.Item(0).Eject end if Set wmp = Nothing End Sub としましたが、やはり、いずれの場合にも Set wmp = CreateObject("WMPlayer.OCX.7")の行で 「オートメーションエラーです。エラーを特定できません」 というエラーが出ます。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

以下では? Dim wmp Dim cdromCol Dim i Set wmp = CreateObject("WMPlayer.OCX.7") Set cdromCol = wmp.cdromCollection If cdromCol.Count >= 1 Then cdromCol.Item(0).Eject 'あるいは 'For i = 0 To cdromCol.Count - 1 'cdromCol.Item(i).Eject 'Next End If

denka3
質問者

補足

ご回答ありがとうございます (1) Private Sub CommandButton1_Click() Dim wmp Dim cdromCol Dim i Set wmp = CreateObject("WMPlayer.OCX.7") Set cdromCol = wmp.cdromCollection For i = 0 To cdromCol.Count - 1 cdromCol.Item(i).Eject Next End Sub (2) Private Sub CommandButton1_Click() Dim wmp Dim cdromCol Dim i Set wmp = CreateObject("WMPlayer.OCX.7") Set cdromCol = wmp.cdromCollection If cdromCol.Count >= 1 Then cdromCol.Item(0).Eject end if End Sub いずれの場合にも Set wmp = CreateObject("WMPlayer.OCX.7")の行で 「オートメーションエラーです。エラーを特定できません」 というエラーが出ます。

関連するQ&A