• 締切済み

VBからエクセルへの書き込みについて

xlSheet.Range("B24") =123 の様にするとエクセルのB4セルに123が書き込まれますが、エクセルのセルをマウスでダブルクリックしてセルにカーソルが表示されている状態にすると書き込みが停止します エクセルを操作してもVBの書き込みが停止しない方法は無いでしょうか ご存じの方恐れ入りますが宜しくお願いします

みんなの回答

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

こんばんは。 > セルをマウスでダブルクリックしてセルにカーソルが表示されている状態 これって、セルの編集モードに入っている状態ですか...? セルの編集モード中でも VBA は動くようですけど #1 ご回答のような問題もありますし、 下手すると Excel ごとストンと落ちるリスクがありますよ... 試してないけど、とりあえず DoEvents を入れてみて下さい。

回答No.4

別にSheetを切り替えなくてもActiveCellさえ別の場所のとばしてやれば可能です。 また、現在の座標を一旦どこかに退避させておけば、最後にもとに戻すだけでいいのでは?

回答No.3

直前で、Sheetを切り替えれば、書き込み可能です。 ActiveWorkbook.Worksheets("Sheet2").Activate ActiveWorkbook.Worksheets("Sheet1").Activate ActiveWorkbook.Worksheets("Sheet1").Cells(2, 4).Value = 123 ただし、カーソルは元に戻せません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

私にはとても歯が立ちませんが、ウインドウズの底の底まで知り尽くしたプログラム(APIはもちろん駆使)の技量が有ればできるかもしれないが、普通のエクセルVBAのメソッド・プロパティでは無理と思いますが(私の無知かも知れませんが)。エクセルでは、編集モードではエクセルの処理を停止するというのがお約束だと思います。 ーーー それより、そういうニーズが、どういう場面で必要なのかを説明し、よく知っている方の、別の良い解決方法はないか聞くのが良いと思う。 ちょっとそのニーズが想像できないです。

回答No.1

あくまで経験の範囲ですが、できなかったと思います。 セルの編集中 = ユーザーが明示的にワークシート上で作業中 だと思うのですが、違いますかね。。。 であればユーザーの意思で作業しているものを外部から強制的に確定または取り消ししてしまうのも問題だと思いますよ。

nakatyan
質問者

補足

おっしゃる意味は理解できますが問題を把握した上で書き込みをしたいのですが 何か方法はありますか

関連するQ&A