アプリ版:「スタンプのみでお礼する」機能のリリースについて

長い処理を繰り返すプログラムを使っています。
ESCキーを押すと処理が止まりますが、どこで止まるか決まってないので困ります。
プログラムの実行中に、キー又はマウスの操作を変数に取り込み、処理を分岐し終了処理をさせたいのですが、その方法があったら、教えてください。

A 回答 (3件)

ダミーで良いですから、適当なユーザーフォームを作くり、それを表示した状態で、目的の処理をすれば、マウスのダブルクリックや、ユーザーフォーム上をクリックするなどの操作による、イベントドリブンなプログラムを書けます。


例えば、ユーザーフォーム上をクリックして場合は、下記のサブプロシージャーが実行されますので、この中に処理を終わらせる記述が出来ます。

Private Sub UserForm_Click()

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。試してみます。

お礼日時:2005/04/13 17:30

これじゃあ、ダメかな?


ESCキーを押すと"ESCが押されました"というメッセージが表示される。

--------------------------------------------------
Sub a()
Dim i As Long

' エラー処理を登録
On Error GoTo ERR1
' ESCキーでエラー処理に進む
Application.EnableCancelKey = xlErrorHandler

For i = 1 To 60000
Cells(i, 1).Select
Next i

GoTo EXIT1

' エラー処理
ERR1:
MsgBox "ESCが押されました"

' 終了処理
EXIT1:
' セットしたプロパティを初期値に戻す
Application.EnableCancelKey = xlInterrupt
Application.StatusBar = False

End Sub
--------------------------------------------------

これを色々応用すれば、何とかESCキーで分岐は出来そうですが。
    • good
    • 0
この回答へのお礼

ありがとうございます。ERR1:の中でフラグを立て、RESUMEで元の処理に戻し、分岐させたいところでフラグを見て分岐させればできそうな気がします、試してみます。どうもありがとうございました。

お礼日時:2005/04/13 17:42

どのような処理をしているのかわからないのですが、MsgBox関数を使って終了するか、続けるかを選択するというのはだめでしょうか?



If MsgBox("end?", vbOKCancel) = vbOK Then
'処理を終了する
End If
分岐点に↑のような記述をするとか。
メッセージボックスが現れて、OK、キャンセルボタンをクリックすることで処理の流れを変えられますよ。

そういうことじゃないんだよ、ということでしたらごめんなさい。
    • good
    • 0
この回答へのお礼

普通はずーと処理を続けていて「止めたいな」と思った時にマウス操作をして止める、それもどこでも良いわけでは無く、丁度良い処理の切れ目で分岐してから終了の処理をして止めたい、という横着者の質問ですなんです。ご回答ありがとうございました。

お礼日時:2005/04/13 17:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!