• ベストアンサー

入力後、セルの移動する方向について

入力後のセルの移動する方向についてですが、 例えば、「A1からE9までは下方向に、A10からE19までは横方向に」 と、いうように範囲指定することは出来るのでしょうか。 宜しくお願いします。

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

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

ツールーオプションー編集ー入力後にセルを移動する、をマクロの記録をとると、 With Application .MoveAfterReturnDirection = xlToRight End With となってApplication(エクセル全般)に対しての設定になっていて、Range(セル範囲)ではない。 また別にRangeに対するプロパティの設定ではMoveAfterReturnDirection は無い。 だから不可能です。 ーーー やるならSelectionイベントでセル範囲を判別し、プログラムで切り替えるほか無い。 ー シートタブ部で右クリックーコードの表示ーで出る画面に貼り付け。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False Set rng = Intersect(Target, Range("A1:E9")) If Not (rng Is Nothing) Then Application.MoveAfterReturnDirection = xlToRight Else Set rng = Intersect(Target, Range("A10:E19")) If Not (rng Is Nothing) Then Application.MoveAfterReturnDirection = xlDown End If End If Application.EnableEvents = True End Sub ーー 上記は質問で言及している範囲の外の指定が手抜きがあること。 またApplication.EnableEvents = Trueを入れている(入れざるを得ない)が、意味が無いこと。 セル選択が動いた後もこのイベントがもう一度発生してしまう。 ーー>SelecionChangeイベントを使うことは 不適当で、Changeイベントでやるべきか。 Private Sub Worksheet_Change(ByVal Target As Range) でも最初のデータ選択で、現在の設定のMoveAfterReturnDirection が先に効いてしまうのでやりにくい。 など完全ではないが、とりあえずここまでやった結果を挙げておきます。

woodpark
質問者

お礼

一筋縄にはいかないにしても、出来ない訳ではないようですね。 せっかく方法を示して頂いたのに申し訳ありませんが、今の私には手に負えないといったところが現状です。 今後、何とかなりそうならまた検討してみたいと思います。 ありがとうございました。

その他の回答 (2)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

一般機能では無理だと思います。 VBAを使えば希望が叶います。

  • hrkn-p
  • ベストアンサー率37% (68/182)
回答No.1

できません。 「ツール」-「オプション」でオプション指定画面を開き、 「編集」のタブで「入力後にセルを移動する」のところで、「下・右・上・左」から選択は出来ますが、セルの位置によって移動数方向を決めるような定義は出来ませ。

関連するQ&A