![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.2ベストアンサー
- 回答日時:
No.1です。
恐らく、セル移動が終了しないうちに、更に別のセルに移動させようとして
いるから、エラーとなるのでしょう。
やり方としては汚いですが(汗)、セル移動専用のInterval=10とかの
Timerを準備しておいて、移動したい場合のみTimerを起動し、
Timer.Tickイベント側で、Timerを停止してセル移動を行うって手も
あります。
DataGridViewは色々クセがありますので、こういう手で逃げるのも
ある意味楽で良いです。但しちゃんとコメント書いとかないと訳わかんなく
なりますし、他の人が見ても謎のソースになります(滝汗)。
…サブクラスとか作って綺麗に処理書ける方がいらっしゃったら補足お願いします…
早々のご返事ありがとうございます。
Timerで逃げるのも手かもしれませんね。
一度試してみます。
どうもありがとうございます。
No.1
- 回答日時:
少ししか検証してない上に、もっと効率的なやり方もあるかもですが、
DataGridViewのセル移動では、CellLeaveイベントが発生してから
CellEnterイベントが発生しているようなので、CellLeaveの時点で
CellのRow,Columnをモジュールレベル以上のスコープを持つ変数を使用して
憶えておき、CellEnterの時点で、それと移動後のRow,Columnを比較すれば、
何とかなる気は します。
(この程度だと気付いてるかもしれませんが…)
ただ、このやり方だと、例えば条件によってセル移動をキャンセルしたり
する場合は、チラついたり動作が遅くなったりする可能性もあると思います。
あと、他のコントロールにフォーカスが移動した場合も、CellLeaveは
発生しますので、その場合の動作は、適宜アレンジしてください。
ご回答ありがとうございます。
ご指摘頂いたやり方も試していたのですが、セル移動のキャンセル
がうまく出来ないので断念しておりました。
CellEnterイベントでセル移動のキャンセルが発生した場合に、
保存しておいたRow、Column情報を、CurrentCellにセットすると
エラーが発生してしまいます。
どうしても回避できなかったので、CellValidatingイベントで
入力チェックが行えないものかと考えておりました。
CurrentCellでフォーカスを戻すやり方がまずいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Excel(エクセル) エクセルVBAで図形のテキストを取得してセルに入力 2 2022/10/05 23:09
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
- Excel(エクセル) エクセルについて質問です。 8 2022/05/31 16:00
- Visual Basic(VBA) 入力と同時に桁数を詰める 3 2022/09/11 20:23
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクリックすると現在の時...
-
マクロを使って画像を貼り付け
-
(VBA)アクティブセルを起点に...
-
Windowsで動くVBAがmacOSで動か...
-
Excel VBA ダブルクリックで入...
-
Excel VBA セルを指定個数ラン...
-
VBAのListBoxで複数選択して...
-
和文英訳の相談
-
【VBA】参照値を1ずつ増やして...
-
データが入力されている隣のセ...
-
エクセル: セルの枠を超えて表示
-
Excel分数の表示について
-
Excelについての質問です。 B2...
-
日付だけを変更して印刷(Excel)
-
Excelで 分:秒 と表示させる...
-
エクセルで表示形式の時刻の「0...
-
【EXCEL】画像の黄色部分の抽出...
-
EXCELで特定のセルに表示...
-
エクセルのセル内の余白の設定...
-
エクセルのセル内に全角数字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データが入力されている隣のセ...
-
EXCELマクロ 保護されているシ...
-
エクセルテキストボックスの文...
-
VBAで、貼り付け禁止命令を実現...
-
ハイパーリンクされているファ...
-
VBAで丸をつけたいです。
-
メッセージを1度だけ表示したい。
-
エクセルVBA(実行時エラー438...
-
ダブルクリックすると現在の時...
-
VBA セルに合わせて移動するが...
-
(VBA)アクティブセルを起点に...
-
Jtableの特定のセルの背景色や...
-
Windowsで動くVBAがmacOSで動か...
-
エクセルVBA セル選択後にカレ...
-
Excelのセル内にある図形を削除...
-
Excel VBA ダブルクリックで入...
-
セル色を5秒間隔で変える
-
StringGridでの文字入力制限
-
【VBA】参照値を1ずつ増やして...
-
マクロでのカーソル移動
おすすめ情報