Excel VBA質問箱 IV

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

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


7265 / 13644 ツリー ←次へ | 前へ→

【40209】実行中は、文字入力は無理でしょうか? 音速ブルー 06/7/9(日) 2:33 質問[未読]
【40213】Re:実行中は、文字入力は無理でしょうか? ぱっせんじゃー 06/7/9(日) 8:39 発言[未読]
【40214】Re:実行中は、文字入力は無理でしょうか? ichinose 06/7/9(日) 9:24 発言[未読]
【40215】Re:実行中は、文字入力は無理でしょうか? ぱっせんじゃー 06/7/9(日) 10:15 発言[未読]
【40231】Re:実行中は、文字入力は無理でしょうか? 音速ブルー 06/7/9(日) 23:16 お礼[未読]

【40209】実行中は、文字入力は無理でしょうか?
質問  音速ブルー  - 06/7/9(日) 2:33 -

引用なし
パスワード
   シート上のオートシェイプを1秒ごとに拡大していき、オートシェイプと同じ文字(a)を、セルに入力したら、その拡大がおわる、と言う風にしたいのです。
オートシェイプが1秒ごとに拡大というのは、
Do
  ActiveSheet.Shapes("shape1").Select
  Selection.ShapeRange.ScaleWidth 1.1, msoFalse, msoScaleFromMiddle
  Selection.ShapeRange.ScaleHeight 1.1, msoFalse, msoScaleFromMiddle
  Application.Wait (Now + TimeValue("0:00:01"))
Loop Until Cells(30, 4).Value = "a"

としたのですが、拡大している間はセルに入力ができません。ですのでいつまでも拡大を続けてしまいます。
拡大している間も、文字入力し、一致すれば終了できる方法がありましたら、教えてください。お願いします。

【40213】Re:実行中は、文字入力は無理でしょうか?
発言  ぱっせんじゃー  - 06/7/9(日) 8:39 -

引用なし
パスワード
   DoEventsを入れてみてはいかがでしょう?

ちょっと改造してみました。

Sub test()
Dim sp As Shape
 Set sp = ActiveSheet.Shapes("shape1")
 Do
  With sp
  .ScaleWidth 1.1, msoFalse, msoScaleFromMiddle
  .ScaleHeight 1.1, msoFalse, msoScaleFromMiddle
  End With
  Application.Wait (Now + TimeValue("0:00:01"))
  DoEvents
 Loop Until Cells(30, 4).Value = "a"
End Sub

【40214】Re:実行中は、文字入力は無理でしょうか?
発言  ichinose  - 06/7/9(日) 9:24 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
おはようございます。

>DoEventsを入れてみてはいかがでしょう?
>
>ちょっと改造してみました。
>
>Sub test()
> Dim sp As Shape
> Set sp = ActiveSheet.Shapes("shape1")
> Do
>  With sp
>  .ScaleWidth 1.1, msoFalse, msoScaleFromMiddle
>  .ScaleHeight 1.1, msoFalse, msoScaleFromMiddle
>  End With
>  Application.Wait (Now + TimeValue("0:00:01"))
>  DoEvents
> Loop Until Cells(30, 4).Value = "a"
>End Sub

これ、どのセルに何を入力してもプログラムの実行が止まってしまいます。
ユーザーにシートを触らせる仕様は、色んな制限が必要がなってきそうです。
上記は、ボタンのクリックで処理を中断するに仕様を変更したり、
シートを保護してセルの入力を禁止したりしないとならないので
工夫が必要そうですね!!

【40215】Re:実行中は、文字入力は無理でしょうか?
発言  ぱっせんじゃー  - 06/7/9(日) 10:15 -

引用なし
パスワード
   >これ、どのセルに何を入力してもプログラムの実行が止まってしまいます。

そうですね。
ユーザーフォームのトグルボタンで停止させるようにしてみました。

 Loop Until UserForm1.ToggleButton1.Value = True

ちょっと改造したら、トグルボタンで再スタートさせることも出来そうです
ね。

【40231】Re:実行中は、文字入力は無理でしょうか?
お礼  音速ブルー  - 06/7/9(日) 23:16 -

引用なし
パスワード
   ▼ichinose さん:
▼ぱっせんじゃー さん:
ありがとうございます。ご意見を参考にいろいろ試してみようと思います。

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