Excel VBA質問箱 IV

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

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


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

【37273】VBAの基本かも知れませんが・・・ ガリ 06/4/27(木) 16:46 質問[未読]
【37275】Re:VBAの基本かも知れませんが・・・ neptune 06/4/27(木) 17:33 発言[未読]
【37298】Re:VBAの基本かも知れませんが・・・ ガリ 06/4/28(金) 13:02 お礼[未読]

【37273】VBAの基本かも知れませんが・・・
質問  ガリ  - 06/4/27(木) 16:46 -

引用なし
パスワード
   こんにちは、初めてVBAをはじめた者ですが、
調べてみたのですが解らないのでどなたかお教え下さい。

シート(Sheet1)に2個のコマンドボタンをつけて以下のコードを書きました。

'== コード ===================================
Dim blnStop As Boolean

Private Sub CommandButton1_Click()
 blnStop = False
 Do
  Range("A1").Value = Now
  DoEvents
 Loop While blnStop = False
End Sub

Private Sub CommandButton2_Click()
 blnStop = True
End Sub

'== 確認内容 =================================
CommandButton1ボタンを押すとA1セルに現在時間が表示され
CommandButton2ボタンを押すと停止するのは確認が取れたのですが、
CommandButton1ボタンを押して現在時刻を表示中に
シート(Sheet1)の他のセルに文字を入力すると時間が更新されなくなります。

'== 質問内容 =================================
質問1:他のセルに文字を入力した事によって動いていた処理はどうなってしまったのでしょうか?、強制終了?、それとも更新はされないがどこかで動き続けている?
質問2:処理実行中はセルの入力をできなくする等の方法で回避できるものなのか?、VBA自体はそういう物なので無理なのか?

宜しくお願いします。

【37275】Re:VBAの基本かも知れませんが・・・
発言  neptune  - 06/4/27(木) 17:33 -

引用なし
パスワード
   ▼ガリ さん:
Excelの基本的な質問ではないような・・・
Windowsプログラムの範疇のような気がする。
>'== 質問内容 =================================
>質問1:他のセルに文字を入力した事によって動いていた処理はどうなってしまったのでしょうか?、強制終了?、それとも更新はされないがどこかで動き続けている?
多分、ですが、
Excelの処理を優先させている為、Excelの管理下で動作しているプログラム(マクロ)
の処理が隅っこに隠れているんです。1つのプログラム(Excel)上で2つの
プログラムは動かないのではないでしょうか。

>質問2:処理実行中はセルの入力をできなくする等の方法で回避できるものなのか?、VBA自体はそういう物なので無理なのか?
無理ではないと思いますが、結構トリッキーなことを
しなければならないような気がしますし、思い浮かんでも現実的な方法
ではないです。

私ならUserFormをモーダルで表示させ、そこに時間を表示させると思います。
多分、これが一番簡単でな解決方法のような気がします。

識者の回答を待ちましょう。

【37298】Re:VBAの基本かも知れませんが・・・
お礼  ガリ  - 06/4/28(金) 13:02 -

引用なし
パスワード
   neptune さん、ご回答ありがとうございます。

▼neptune さん:
>▼ガリ さん:
>Excelの基本的な質問ではないような・・・
>Windowsプログラムの範疇のような気がする。
>>'== 質問内容 =================================
>>質問1:他のセルに文字を入力した事によって動いていた処理はどうなってしまったのでしょうか?、強制終了?、それとも更新はされないがどこかで動き続けている?
>多分、ですが、
>Excelの処理を優先させている為、Excelの管理下で動作しているプログラム(マクロ)
>の処理が隅っこに隠れているんです。1つのプログラム(Excel)上で2つの
>プログラムは動かないのではないでしょうか。

そういう事ですか、了解しました。

>
>>質問2:処理実行中はセルの入力をできなくする等の方法で回避できるものなのか?、VBA自体はそういう物なので無理なのか?
>無理ではないと思いますが、結構トリッキーなことを
>しなければならないような気がしますし、思い浮かんでも現実的な方法
>ではないです。
>
>私ならUserFormをモーダルで表示させ、そこに時間を表示させると思います。
>多分、これが一番簡単でな解決方法のような気がします。

なるほどUserFormですね、
モーダル表示させると当然ながらシート(Excel本体)が触れなくなるしいいですね。

ありがとうございました。

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