|
▼あおいパパ さん:
こんにちは。
>実は,この方法は試してみて,上手くいかなかったのです。
>多分私のプログラムがおかしかったのだと思いますので,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イベントが働いてくれました。
|
|