| 
    
     |  | ▼あおいパパ さん: こんにちは。
 >実は,この方法は試してみて,上手くいかなかったのです。
 >多分私のプログラムがおかしかったのだと思いますので,HELPを熟読して再度挑戦してみます。この方法が上手くいけば,数字キーに停止や早送りを割り当てられますので,そうするとコントロール用formを表示しなくても良いかも知れませんものね。
 
 UserformのKeydownイベント、問題は、配置してあるコントロールにフォーカスが移った場合にイベントが発生しないことですよね?
 仮に以下のフォームを想定してみました。
 ユーザーフォーム(Userform1)
 メディアプレーヤー(Mediaplayer1)
 コマンドボタン(Commandbutoon1)--メディアプレーヤーにファイルを設定
 
 コントロールとして配置するのは上のふたつです。
 数字キーの機能は
 
 数字キー
 0:ストップ
 4:巻き戻し
 5:プレイ
 6:早送り
 としましょうか
 
 当該ユーザーフォームのモジュールに
 
 '===================================================
 Private Sub CommandButton1_Click()
 UserForm1.MediaPlayer1.Filename = "D:\何かのファイル.mpg"
 With MediaPlayer1
 .ClickToPlay = False
 End With
 CommandButton1.Visible = False
 CommandButton1.Visible = True
 End Sub
 
 '====================================
 Private Sub UserForm_Initialize()
 With MediaPlayer1
 .TabStop = False
 .Enabled = False
 End With
 With CommandButton1
 .TabStop = False
 End With
 End Sub
 
 '=====================================
 Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 With MediaPlayer1
 Select Case KeyCode
 Case 96
 .Stop
 Case 101
 On Error Resume Next
 .Play
 On Error GoTo 0
 Case 102
 If .CurrentPosition + 50 < .SelectionEnd Then
 .CurrentPosition = .CurrentPosition + 50
 Else
 .CurrentPosition = .SelectionEnd
 End If
 Case 100
 If .CurrentPosition - 50 < 0 Then
 .CurrentPosition = 0
 Else
 .CurrentPosition = .CurrentPosition - 50
 End If
 End Select
 End With
 End Sub
 
 としましたら、
 
 ユーザーフォームのKeydownイベントが働いてくれました。
 
 |  |