[リストへもどる]
一括表示

投稿時間:2003/08/04(Mon) 16:05
投稿者名:ねぎ
URL :
タイトル:
ショートカットについて
おはようございます。
早速ですが。
メインフォームから各フォームにファンクションキーを使って開けるようにしたいと思っています。
フォームの数が多いのでShiftも利用してフォームを開きたいです。
まだ始めたばかりなので、よく分からないことだらけなのですが・・・。
自分なりに作ってみました。(下記のソース)
しかし、やはり考え方自体間違っているのか、実行してキーを押しても何も起こりません(涙
アドバイスをいただけたらなと思っています。よろしくお願いします。
'ショートカット
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    
    If (Shift = 0) Then
        GoSub YesShift  'Shiftが押されている場合
    Else
        GoSub NoShift  'Shiftが押されていない場合
    End If
    
YesShift:
    Select Case KeyCode
    Case vbKeyF1  '製品マスタ設定
        Call Seimasu_Open_Click
    End Select
    
NoShift:
    Select Case KeyCode
    Case vbKeyF1  '受注処理
        Call JyuSyori_Open_Click
    End Select
    
End Sub

投稿時間:2003/08/04(Mon) 16:14
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re: ショートカットについて
> しかし、やはり考え方自体間違っているのか、実行してキーを押しても何も起こりません(涙

FormのKeyPreviewがTrueになってない、とか。

> Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
>    
>     If (Shift = 0) Then
>         GoSub YesShift  'Shiftが押されている場合
>     Else
>         GoSub NoShift  'Shiftが押されていない場合
>     End If
>    
> YesShift:
>     Select Case KeyCode
>     Case vbKeyF1  '製品マスタ設定
>         Call Seimasu_Open_Click
>     End Select
>    
> NoShift:
>     Select Case KeyCode
>     Case vbKeyF1  '受注処理
>         Call JyuSyori_Open_Click
>     End Select
>    
> End Sub

まず、Shiftキー&何か を押している時は Shift = vbShiftMask になっています。
Shift = 0 はShift、Ctrl、Altのどれも押されていない時です。
この辺はKeyDownイベントについてMSDN(ヘルプ)を調べてください。

あとGoSubは過去のBasicとの互換性を保つために残されてるステートメントなので使わない方が良いです。
使うにしても Returnステートメントがないと希望通りに動いてくれないでしょう。
(つーか、エラー出ないんですかね??)
これに関してもMSDNを調べた方が良いです。

てゆーか、何にしてもまず分からないことはヘルプを調べてください。

投稿時間:2003/08/04(Mon) 16:24
投稿者名:ねぎ
URL :
タイトル:
Re^2: ショートカットについて
nanasi様、返信ありがとうございます。

> FormのKeyPreviewがTrueになってない、とか。
なってませんでした・・・(汗

> まず、Shiftキー&何か を押している時は Shift = vbShiftMask になっています。
> この辺はKeyDownイベントについてMSDN(ヘルプ)を調べてください。
調べてみましたが、その通りでした。

> あとGoSubは過去のBasicとの互換性を保つために残されてるメソッドなので使わない方が良いです。
> 使うにしても Returnステートメントがないと希望通りに動いてくれないでしょう。
> これに関してもMSDNを調べた方が良いです。
if文で直に分ける事にしました。

> てゆーか、何にしてもまず分からないことはヘルプを調べてください。
ご指導ありがとうございます。今後、ヘルプで分からぬ事がありましたら、
またよろしくお願いいたします。

投稿時間:2003/08/04(Mon) 16:18
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: ショートカットについて
> メインフォームから各フォームにファンクションキーを使って開けるようにしたいと思っています。

KeyPreviewプロパティをTrueにしておけば、KeyDownイベントで拾えます。
(キー押下時には、そのフォームがアクティブになっている必要があります)


>        GoSub NoShift  'Shiftが押されていない場合

GoSubの使い方が間違っているような…これではまるで、GoToですね。(^_^;)

投稿時間:2003/08/04(Mon) 16:33
投稿者名:ねぎ
URL :
タイトル:
Re^2: ショートカットについて
魔界の仮面弁士様返信ありがとうございます。

> KeyPreviewプロパティをTrueにしておけば、KeyDownイベントで拾えます。
> (キー押下時には、そのフォームがアクティブになっている必要があります)
nanasi様にも指摘されましたので、trueにした所、作動しました♪

> GoSubの使い方が間違っているような…これではまるで、GoToですね。(^_^;)
はい(汗)こちらもnanasi様に指摘されたので下記の方でする事にしました。
初心者なので、まだ常識も分からなくてすいませんm(_ _)m

'ショートカット
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    
    If (Shift = vbShiftMask) Then  'Shiftが押されている場合
        Select Case KeyCode
        Case vbKeyF1  '製品マスタ設定
            Call Seimasu_Open_Click
        End Select
    Else  'Shiftが押されていない場合
        Select Case KeyCode
        Case vbKeyF1  '受注処理
            Call JyuSyori_Open_Click
        End Select
    End If
    
End Sub