• ベストアンサー

VBAでセル移動を制御したい。

Excel 2010のVBAでセル移動を行うときは、 ActiveCell.Offset(*, *).Select で移動させるという回答をよく見かけます。 この方法では保護されたセルにも移動してしまって都合が悪いのです。 カーソルキーの挙動と同じ事をしたいのです。 左右の移動に関しては、 ActiveCell.Previous.Select または ActiveCell.Next.Select で実現できるのを確認しました。 上下の移動を実現する方法をどうか教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.1

キー操作で指定したらどうですか? Application.SendKeys "{Down}"

kazukazu72
質問者

補足

回答ありがとうございます。 実は、 Application.OnKey Key:="{DOWN}", Procedure:="下釦入力" で、特別な処理を行った後に一つ下のセルに移動したかったのです。 Application.SendKeys "{Down}" を実行すると<下釦入力>のプロセスを(半永久ループ)行うだけで 一つ下のセルには移動してくれません。 説明不足で申し訳ありませんでした。 でも、 Application.SendKeys 自体はこれはこれで活用用途が広がりそうなので、とてもありがたいです。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.2

誰も回答しませんね…… Sendkeysを「"{DOWN}"」の代わりに「"{ENTER}"」で代用するのは ダメなんですか? もしくは実行する間だけ キー設定を元に戻して 一定時間後に再設定し直すとか。

kazukazu72
質問者

補足

回答ありがとうございます。 皆さん、お手数をお掛けしています。 実は、↑、↓、←、→、Enterキーすべてを再定義しているので ダメなんです。 再定義先で特別な処理をしたあと、一時的にキー設定を標準に 戻してからSendKeysを発行しても半永久ループ状態に変わりは ありませんでした。非常~に残念です。

すると、全ての回答が全文表示されます。

関連するQ&A