Excel VBA質問箱 IV

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

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


4059 / 13646 ツリー ←次へ | 前へ→

【58597】キー入力 RPG好き 08/10/30(木) 21:47 質問[未読]
【58601】Re:キー入力 りん 08/10/31(金) 1:12 発言[未読]
【58625】Re:キー入力 RPG好き 08/10/31(金) 19:07 回答[未読]
【58626】Re:キー入力 ichinose 08/11/1(土) 7:31 発言[未読]
【58633】Re:キー入力 RPG好き 08/11/1(土) 17:52 お礼[未読]

【58597】キー入力
質問  RPG好き  - 08/10/30(木) 21:47 -

引用なし
パスワード
   こんにちは。
Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long
Sub test()
 Dim FoundCell, buf
 'If GetAsyncKeyState(39) <> 0 Then
 Set buf = Range("A1:G13").Find("キャラ")
 buf.Select
 ActiveCell.Cut
 ActiveCell.Offset(0, 1).Activate
 ActiveSheet.Paste
 'End If
End Sub
上のようなマクロを作ったのですが、Ifの部分をコメントじゃないようにすると、
→を押しても機能しなくなります。
→を押したら機能するようにするには、どうすればよいでしょうか。
ご指導お願いします。

なお、この状態なら、ちゃんと機能します。

【58601】Re:キー入力
発言  りん E-MAIL  - 08/10/31(金) 1:12 -

引用なし
パスワード
   RPG好き さん、こんばんわ。

>Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long
>Sub test()
 Dim buf As Range
  If GetAsyncKeyState(39) <> 0 Then
>   Set buf = Range("A1:G13").Find("キャラ")
   With buf
     .Cut destination:= .Offset(0, 1)
   End With
  End If
>End Sub

>上のようなマクロを作ったのですが、Ifの部分をコメントじゃないようにすると、
>→を押しても機能しなくなります。
>→を押したら機能するようにするには、どうすればよいでしょうか。

キーを押しっぱなしの状態でこのコードをCallしないと分岐しないようですが、どのように呼び出していますか?

【58625】Re:キー入力
回答  RPG好き  - 08/10/31(金) 19:07 -

引用なし
パスワード
   ▼りん さん:こんばんは
返答ありがとうございます。

>キーを押しっぱなしの状態でこのコードをCallしないと分岐しないようですが、どのように呼び出していますか?
上についてはボタンを作ってそれにマクロを登録しています。

【58626】Re:キー入力
発言  ichinose  - 08/11/1(土) 7:31 -

引用なし
パスワード
   おはようございます
>返答ありがとうございます。
>
>>キーを押しっぱなしの状態でこのコードをCallしないと分岐しないようですが、どのように呼び出していますか?
>上についてはボタンを作ってそれにマクロを登録しています。


Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long
Sub test()
 Dim FoundCell, buf
 Do Until GetAsyncKeyState(39) <> 0
   DoEvents
   Loop
 Set buf = Range("A1:G13").Find("キャラ")
 If Not buf Is Nothing Then
   buf.Select
   ActiveCell.Cut
   ActiveCell.Offset(0, 1).Activate
   ActiveSheet.Paste
   End If
End Sub

これで試してみてください。
但し、上記のコードは→キーが押されるまで上記のプロシジャーは、
終了しませんので注意してください。

【58633】Re:キー入力
お礼  RPG好き  - 08/11/1(土) 17:52 -

引用なし
パスワード
   返答ありがとうございます。
おかげで問題を解決することができました。

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