Excel VBA質問箱 IV

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

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


11905 / 13645 ツリー ←次へ | 前へ→

【13363】イベントの発生 年寄り 04/5/3(月) 15:00 質問[未読]
【13364】Re:イベントの発生 かみちゃん 04/5/3(月) 15:15 発言[未読]
【13366】Re:イベントの発生 年寄り 04/5/3(月) 16:56 発言[未読]
【13368】Re:イベントの発生 かみちゃん 04/5/3(月) 17:28 発言[未読]
【13369】Re:イベントの発生 年寄り 04/5/3(月) 17:41 発言[未読]
【13370】Re:イベントの発生 よろずや 04/5/3(月) 17:46 発言[未読]
【13371】Re:イベントの発生 年寄り 04/5/3(月) 18:51 発言[未読]
【13410】Re:イベントの発生 よろずや 04/5/4(火) 17:26 回答[未読]
【13418】Re:イベントの発生 年寄り 04/5/4(火) 18:31 お礼[未読]

【13363】イベントの発生
質問  年寄り E-MAIL  - 04/5/3(月) 15:00 -

引用なし
パスワード
   Do Until myinkey<>""
  Sheets(2).Select
  Sheets(1).Select
Loop

キーボードから入力されたキー( myinkey )でこのループを抜け出すには?

【13364】Re:イベントの発生
発言  かみちゃん  - 04/5/3(月) 15:15 -

引用なし
パスワード
   こちんには。かみちゃん です。

>キーボードから入力されたキー( myinkey )でこのループを抜け出すには?

myinkeyは、どういう変数なのでしょうか?
どのように宣言されているのでしょうか?

【13366】Re:イベントの発生
発言  年寄り E-MAIL  - 04/5/3(月) 16:56 -

引用なし
パスワード
   ▼かみちゃん さん:
>こちんには。かみちゃん です。
>
>>キーボードから入力されたキー( myinkey )でこのループを抜け出すには?
>
>myinkeyは、どういう変数なのでしょうか?
>どのように宣言されているのでしょうか?

かみちゃん、よろしく。

Dim myinkey As String  で

【13368】Re:イベントの発生
発言  かみちゃん  - 04/5/3(月) 17:28 -

引用なし
パスワード
   こんにちは。かみちゃんです。

> Do Until myinkey <> ""

は、変数myinkeyに何も入っていない限りループします。
myinkeyの変数の格納がされていないと思います。

キーボードから入力されたキー( myinkey )は、どのように格納していますか?
ユーザーフォームのコードですか?それとも、標準モジュールのコードですか?
通常、テキストボックスなどのKeyDownイベントかKeyPressイベントだと思うのですが・・・
全容が見えないので、なんとも言えません。

【13369】Re:イベントの発生
発言  年寄り E-MAIL  - 04/5/3(月) 17:41 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃんです。
>
>> Do Until myinkey <> ""
>
>は、変数myinkeyに何も入っていない限りループします。
>myinkeyの変数の格納がされていないと思います。
>
>キーボードから入力されたキー( myinkey )は、どのように格納していますか?
>ユーザーフォームのコードですか?それとも、標準モジュールのコードですか?
>通常、テキストボックスなどのKeyDownイベントかKeyPressイベントだと思うのですが・・・
>全容が見えないので、なんとも言えません。

初心者ですみません。質問の方法を別に表現してみます。ブックやシートのイベントはマクロが止まっている時に有効だと思います。マクロが走っている最中にキー入力でプログラムの方向を変化させたいのです。Basicの Inkey$ に相当するものです。

【13370】Re:イベントの発生
発言  よろずや  - 04/5/3(月) 17:46 -

引用なし
パスワード
   根本的に勘違いをしています。
Windowsはイベントドリブンといって、何かイベントが発生したときに
プログラムが実行開始する、という思想でできてます。
キー入力をチェックするのではなく、
キー入力で起動される、と考えてください。

それにしても、シートの選択を繰り返すなんて
いったい何をしたいんでしょう?

【13371】Re:イベントの発生
発言  年寄り E-MAIL  - 04/5/3(月) 18:51 -

引用なし
パスワード
   ▼よろずや さん:
>根本的に勘違いをしています。
>Windowsはイベントドリブンといって、何かイベントが発生したときに
>プログラムが実行開始する、という思想でできてます。
>キー入力をチェックするのではなく、
>キー入力で起動される、と考えてください。
>
>それにしても、シートの選択を繰り返すなんて
>いったい何をしたいんでしょう?

例えばパラパラ漫画を描いたとします。シートを変更することによって絵に動きが出ます。そこでキー入力によって動きを遅くしたり、反対に動かしたりするイベントを発生させたいとしたら?

【13410】Re:イベントの発生
回答  よろずや  - 04/5/4(火) 17:26 -

引用なし
パスワード
   >例えばパラパラ漫画を描いたとします。シートを変更することによって絵に動きが出ます。
>そこでキー入力によって動きを遅くしたり、反対に動かしたりするイベントを発生させたいとしたら?

(1)グローバル変数を用意します。
(2)キー入力のイベント処理で変数にセットします。
(3)ループ処理中はOSからイベントが通知されません。
  ループの中に DoEvents を書くと、そこでOSからイベントが通知され
  イベント処理が起動されます。
  イベント処理が終了すると、DoEvents の次のステップが実行されます。
  そこに、変数をチェックする命令を書きます。

【13418】Re:イベントの発生
お礼  年寄り E-MAIL  - 04/5/4(火) 18:31 -

引用なし
パスワード
   ▼よろずや さん:
>>例えばパラパラ漫画を描いたとします。シートを変更することによって絵に動きが出ます。
>>そこでキー入力によって動きを遅くしたり、反対に動かしたりするイベントを発生させたいとしたら?
>
>(1)グローバル変数を用意します。
>(2)キー入力のイベント処理で変数にセットします。
>(3)ループ処理中はOSからイベントが通知されません。
>  ループの中に DoEvents を書くと、そこでOSからイベントが通知され
>  イベント処理が起動されます。
>  イベント処理が終了すると、DoEvents の次のステップが実行されます。
>  そこに、変数をチェックする命令を書きます。

すばらしい。感謝!感謝!

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