|
いつもお世話になります。
早速ですが、質問させていただきます。
VBAで、「セルの編集状態」を解除させるにはどうしたらいいんでしょうか?
以下のようなコードを書いてみました。
Sub test()
Dim sngStart As Single
Dim sngTime As Single
sngTime = 5
Range("a1").Value = ""
sngStart = Timer
Do While Timer < sngStart + sngTime
DoEvents
If Range("a1").Value <> "" Then
Exit Do
End If
Loop
If Range("a1").Value <> "" Then
MsgBox "入力されました"
Else
MsgBox "時間切れです"
End If
Range("a2").Value = "おわり"
End Sub
時間内にA1になんらかのデータが入力されたかどうか?の判定するだけのコートです。
普通に入力して確定されたら、その時点で「入力されました」のメッセージボックスが出て、A2に「おわり」の文字列が入力されます。(まんまの説明じゃ・・)
で、なにもせずに放置してると、「時間切れです」のメッセージボックスが出ます。
ここで、入力途中で時間切れになった…つまり、A1が編集状態のままループを抜けてしまった場合、メッセージボックスは表示されますが、最後の、
Range("a2").Value = "おわり"
でエラーが出てしまいます。
これを、If分の前に持ってきても、当然そこでエラーが出ます。
セルが編集状態になってる状態ではメッセージボックスを出す以外の処理が出来ないんですね?
これを、どうにか対処できないでしょうか?
コード内で、セルの編集状態の解除は出来ないのでしょうか?
Sendkey "{Enter}" を使ってみましたが無理なようでした。
宜しくお願いします。
|
|