Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4666 / 76732 ←次へ | 前へ→

【77684】Re:無限ループから他のマクルへの分岐
発言  β  - 15/11/28(土) 22:54 -

引用なし
パスワード
   ▼茶―坊 さん:

いまいち要件が分からないのですが、たとえば以下のコードは
最初 Proc1 が実行されます。
で、→キーをおすと Proc2 の実行に変わります。
←キーをおすと Proc1 の実行になります。
何度でも切り替えはできますが、Shiftキーを押すことで終了します。
Shiftキーは長めに押してください。

Private Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long

Sub Test()
  Dim rtn As Long
  Dim flag As Boolean
  
  flag = True
  
  Do
  
    rtn = GetAsyncKeyState(vbKeyShift)
    rtn = rtn And &H80000000
    If rtn <> 0 Then Exit Do
    rtn = GetAsyncKeyState(vbKeyRight)
    rtn = rtn And &H80000000
    If rtn <> 0 Then flag = False
    rtn = GetAsyncKeyState(vbKeyLeft)
    rtn = rtn And &H80000000
    If rtn <> 0 Then flag = True
    
    If flag Then
      Proc1
    Else
      Proc2
    End If
    
    DoEvents
    
  Loop
  
  Range("A1").Value = "終了"
  
End Sub

Sub Proc1()
  Range("A1").Value = 1
End Sub

Sub Proc2()
  Range("A1").Value = 2
End Sub
4 hits

【77682】無限ループから他のマクルへの分岐 茶―坊 15/11/28(土) 21:00 質問[未読]
【77684】Re:無限ループから他のマクルへの分岐 β 15/11/28(土) 22:54 発言[未読]
【77690】Re:無限ループから他のマクルへの分岐 β 15/11/29(日) 22:34 発言[未読]
【77691】Re:無限ループから他のマクロへの分岐 茶ー坊 15/11/30(月) 0:49 お礼[未読]

4666 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free