重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

EXCELで作ってある表に数字を入力する時、
(例)セルA1⇒B1⇒C1(⇒D1⇒F1)と入力した後エンターキーを押したら、
セルA2⇒B2⇒C2(⇒D2⇒F2)へ、またエンターキーを押したら、
セルA3⇒B3⇒C3(⇒D1⇒F3)と移動する方法(関数?マクロ?!)を教えて下さい。

A 回答 (5件)

こんばんは。



>例)セルA1⇒B1⇒C1(⇒D1⇒F1)と入力した後エンターキーを押したら、
>セルA2⇒B2⇒C2(⇒D2⇒F2)へ、またエンターキーを押したら、
>セルA3⇒B3⇒C3(⇒D3⇒F3)と移動する方法(関数?マクロ?!)を教えて下さい。(一部訂正)

今回の質問の場合は、VBAでなくてもよいけれども、設定が面倒です。

オプション-編集-入力後のセルを移動する
方向「右」にして、

A1-F5 など、入力範囲を選択して、Enter キーを押せばよいです。

Worksheet_Changeイベントで、できるというのは、少し意味が違うようです。
挙動がおかしいと思うのは、Enter の後に、キーの移動が一度、設定の「下」に行って、それから、横に移動するからでしょう。出来れば、キーの移動を「右」に変えれば、「下」に動く挙動はなくなります。しかし、Enter キーだけですと、どんどん右に行ってしまいます。

元の質問は、入力してEnter を入れるのではなく、Enter を押して動かす、ということですと、内容が違ってきます。以下は、定番のマクロです。

'標準モジュール

Sub SetKey()
'キー設定
 Application.OnKey "~", "MoveKeys"
 Application.OnKey "{ENTER}", "MoveKeys"
End Sub
Sub SetKeyOff()
'設定解除
 Application.OnKey "~"
 Application.OnKey "{ENTER}"
End Sub
Sub MoveKeys()
  With ActiveCell
    Select Case .Column
      Case 1 To 5: .Offset(, 1).Select
      Case 6: .Offset(1, -5).Select
    End Select  
  End With
End Sub
    • good
    • 0

以前私が回答した質問に似たようなものがありましたので参考に。


http://oshiete1.goo.ne.jp/qa4028581.html

参考URL:http://oshiete1.goo.ne.jp/qa4028581.html
    • good
    • 0

ANo.2のコードですが、一部スペルミスをしている箇所があります。


そのため、一部意図した動きになっていません。
どこか見つけて修正をしてください。
    • good
    • 0

マクロになります。


該当シートの見出しを右クリック>コードの表示
と進めばVBEが起動し、コードウインドウが表示されます。
そこに、下記コードをコピペしてください。
Worksheet_Changeイベントを使っています。

データ入力後、Enterで確定してください。
指定範囲内で希望の動作をします。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count <> 1 Then Exit Sub
  If Target.Rows > 10 Then Exit Sub
  Select Case Target.Column
    Case Is <= 5
      Target.Offset(, 1).Select
    Case Is = 6
      Cells(Target.row + 1, "A").Select
  End Select
End Sub
    • good
    • 0

関数はセルに入力されているデータを処理するもので、この質問のように入力すたら何かの処理をするという事にはむいていません。


質問事項をかなえるにはマクロで処理する事になります。
マクロが処理を開始するタイミングとして"入力した後エンターキーを押したら"となるのなら、Worksheet_Changeイベントで行えばできると思います。

マクロは簡単な物につてはエクセルの"マクロの記録"の機能を使えば簡単にできますが、今回の場合は、単純に"入力後は右に動く"だけでなく"ある一定のセルの場合はA列に戻り一行下がる"と条件により二つの動きを支持しなければなりません。
この場合はマクロの構文に IF...Then......EndIf で指示してやります。
この Worksheet_Changeイベント や IF...Then......EndIf の構文はエクセルの"マクロの記録"の機能ではできないので、自分でVBEで編集する事になります。
まずは簡単に出いいので、マクロについてエクセルのヘルプファイルやWEBサイトの情報をチェックしてみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!