- 締切済み
エクセルでカーソル移動のバグ
わかりにくいと思いますが状況を説明します エクセルを開く B2:F2を結合 それを横3マス縦2マスにコピー ┏┳┳┳┳┳┳┳┳┳┳┳┳ ┣╋┻┻┻╋┻┻┻╋┻┻┻ ┣╋━━━╋━━━╋━━━ ┣╋┳┳┳╋┳┳┳╋┳┳┳ こんな感じになる これで A1 A2 B2 B3 G3 L3 L2 G2 B2 とセルをカーソル移動した後に下へ移動するとなぜか、 (A1から↓→↓→→↑←←で↓です) G3へ移動してしまいます。 このバグの原因が判る方いませんでしょうか? VBAでのフォーカス移動を組んでいるのですがどうも誤作動が多く・・・ これが原因じゃないかと考えているのですが・・・。 エクセルは2007 OSはWinXPです 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ap_2
- ベストアンサー率64% (70/109)
ほんとだ、面白い。情報ありがとうございます(苦笑) 現象からの想像ですが・・・ どーも、"C1から↓↓でC4に抜ける"といった移動を可能にするため、方向キー移動でマージセルを通過する際には、進入位置(?)を記憶して、ソレを基準に何かしてるみたいです。 問題現象はソレに絡むようで、 「2歩以上連続同方向に移動して、最初に進入したマージセルに戻った直後、移動方向を90度変える(曲がる)と、1歩手前で曲がった感じになる。」 どうしてそんなコトなるのか、スッキリしませんが。。 まぁ、方向キーに頼るなってコトですね。 SendKeys使ってるんだと思いますが、アレは不安定なので最終手段。VBAで同様の操作をするなら、Selection.Offset(1,1).Select。できれば、セルの結合・分割に影響されないCells(r,c)で指定するのが望ましいです。
- DreamyCat
- ベストアンサー率56% (295/524)
Windows8 Office2013でも連結セルが横3列あって上か左の非連結セルからスタートすると 手動でそうなることが確認できました。 VBAでどうやってカーソル移動させているのかわかりませんが セルのアドレスを指定して移動させれば問題ないのではありませんか。
補足
回答ありがとうございます。 ワークシートのChangeイベントにセルが変更られたら特定のセルへ飛ぶ。 こんな記述をしていたらなぜか移動後におかしくなることが多かったのです。 (Selection.Offset~で記述してましたが、移動後にエンター押すと下じゃなくあさっての方向に移動したりする。) 普通にエンターやカーソルで移動していれば何も問題が起きないので、 これはもうSendKeyしかないと。それでカーソル移動を記述していたのですがまたおかしくなったわけです。 今はもうなんかどうでもよくなってしまったので解決できなくて大丈夫になりました。 バグを理解してくれてありがとうございます! とりあえずこれを誰かに伝えたかった。