Excelで指定桁数分を入力して次のセルに移動する方法

このQ&Aのポイント
  • Excelで指定桁数分を入力すると自動的に次のセルに移動する方法を知りたいです。
  • 現在は各製品の長さを入力して表にしているため、エンターキーを押すのが煩雑で面倒です。
  • 質問文章全体ではExcelで指定桁数分を入力すると自動的に次のセルに移動する方法を教えていただけると助かります。
回答を見る
  • ベストアンサー

Excelで指定桁数分を入力すると自動的に次のセルに移動するようにするには?

Excelで指定桁数分を入力すると自動的に次のセルに移動するようにしたいのですが、このような方法の設定の仕方はあるでしょうか。 つまり例えばA1に「1234」と入力するとセルが自動で次のセル(A2)に移動して、すぐにA2での入力に移れるような方法を探しています。 各製品の長さを入力して表にしているのですが、いちいちエンターキーを押すのが煩雑で面倒です。ご存知の方がいましたら教えて頂ければとても助かります。 宜しくお願い致します。 =================== 例) 1923 ----- ↓自動で次のセルに以降 1897 ----- ↓自動で次のセルに以降 1638 -----

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

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.2

こんにちは。...かなりベタなコードで、うまく動かないかもしれませんが... ...なのでテストは充分に行ってください。 >各製品の長さ という事なので、10キー限定です。 3桁には対応させてません。(その場合はEnterキー) 標準モジュールに以下の3つのコードをコピーペーストします。 『Sub Num_in』というのが本体です。 『Sub スタート』を実行する事で、この機能を ON にします。 『Sub 解除』で OFF にします。 '------------------------------------------------- Sub スタート()   Dim i As Long   With Application    For i = 0 To 9     .OnKey "{" & i + 96 & "}", "'Num_in" & """" & i & """" & "'"    Next   End With End Sub '------------------------------------------------- Sub 解除()   Dim i As Long   With Application    For i = 0 To 9     .OnKey "{" & i + 96 & "}"    Next   End With End Sub '------------------------------------------------- Sub Num_in(n As Long)   Dim j As Long   With Selection     j = Len(.Value)     If j > 3 Then       .Value = n     Else       .Value = .Value & n       If j = 3 Then .Offset(1).Select     End If   End With End Sub '-------------------------------------------------

その他の回答 (1)

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

ENTERキーを押したあとではなくて、キーの押しさげを察知するのは、VBAのイベントを使えわないと、できないと思う。もっと言うならAPI の駆使など。関数のように、セルの値になってからでないと働かない仕組みは役立たない。 テキストボックスには、KeyUp,KeyDownなどのイベントがあるので シートに、テキストボックスを1つ貼り付けて、そのKeyUpイベント を使ってみた。 A列の書式は文字列としておく。 テキストボックスに数字を連続して入力していく。6桁になるとセルに値としてセットします。 データをセットするスタートのセルの指定は、そのセルを指定し、テキストボックス内でダブルクリックすること。 Public i Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) i = ActiveCell.Row End Sub Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Static n, s s = s & Chr(KeyCode) n = n + 1 If n = 6 Then n = 0 Cells(i, "A") = s i = i + 1 s = "" TextBox1.Text = "" End If End Sub 英数半角ならうまくいくようです。(質問ではこれでOK?) 英小文字や半角カナ・全角文字もうまくいかない。 私自身の問題は Shiftを押す記号や全角文字やカナ半角ではどうしたら良いか? 分からない。 またキャンセルやその他のキー操作の場合も未確認です。 ーー そういうことで、後で良い回答が出なければ、相当技術を要する事項だと、私は思うので、あきらめてください。

関連するQ&A

  • エクセルの入力でセル移動

    MSのエクセルで、セルに指定された文字数を入力したらEnterや矢印キーを押さなくても次のセルに移動させる方法はないでしょうか? 例えばA1セルに入力出来る文字数は3と指定しておきます。A1セルに3文字入力したら、次のセルA2に移動するようにする方法です。入力規則で文字列指定まではできますが、次にセルに移動するにはEnterなどが必要です。これを省略する方法です。 バージョンは2003ですが、2007,2010でできるのでしたらそのバージョンでも構いません。

  • エクセルのセルの移動について

    言葉では表現しづらいのですが、精一杯お伝えしますので、汲み取ってください。^_^; ここでは仮にエクセルのワークシート上で『A1~C3』までの3行3列の表を作るとします。 通常、連続したデータを入力していく場合は、A1に入力後、タブキーで右にひとつ移動してB1のセルに任意の入力を行い、更にひとつ右のセルにタブキーで移動し、入力が済んだらC1で改行(エンター)で自動的にA2にセルは移動しますよね? これを縦横(行列)逆の考えで、A1に入力後、改行(エンター)キーでA2にセル移動、更に改行でA3に移動し入力が済んだら『自動(エンターキーの操作くらい)でB1セルに移動したい』のですが、どのような方法がありますか? 左手がデータの用紙をめくることでふさがっておりますので、できれば右手(テンキー)だけで出来る操作で何とかならないものかと思っています。 よろしくお願いします。

  • セルの自動移動

    エクセルで、入力後次のセルに移動するにはEnter等を押す必要があります。 シートに入力フォームを予め作っています。 1つのセルには1文字しか入力しないのですが、1文字を入力したら(Enter等を押さずに)自動的に次のセル(指定したセル)に移動することはできませんか? 例: セルB1に「1」を入力(1キーを押す)と次に入力したいB2へカーソルが移動

  • エクセルでエンターを押すと隣のセルではなく指定したセルに!

    エクセルでエンターを押すとセルが右隣に移動します。 次に入力したいのは4個右のセルなので、エンターキー を4回押しています。 一回エンター押すと指定したセルに飛ばすにはどうし たらいいのか教えて下さい。

  • 【Excel】 入力後に移動するセルを指定したい。

    こんにちは。 A1からC5までの15セルからなる表があります。 A1については入力後下に移動し、A5まで入力。 A5に入力後はB1に移動します。 B1入力後は横に移動し、C1入力後はB2に移動します。 B2入力後は横に移動で、C2入力後はC2という具合に C5まで入力します。 更にこの15セルを一つのユニットとした表が、縦横に幾つか並び、それぞれ同様に移動したいのです。 どのような方法がありますでしょうか。 Excel2003です。 よろしくお願いいたします。

  • EXCELで入力セルの自動移動

     項目  値1 値2 値3 値4 値5  1 A1  B1 C1 D1 E2 F2 2 A2  B2 C2 D2 E2 3 A3 上記のような表で、横方向に入力の作業をする場合、0(ゼロ)を入力したら、次の行の項目セルに移動する方法はどのようにしたらよろしいのでしょうか。 F2に0を入力したらA2に、E2に0を入力したらA3にということですが。 よろしくお願いします。

  • セルの移動

    エクセルにデータを入力するときに、数字をいれてENTERキーを押すと次に入力するセルが下にいってしまうので、またいちいち右のセルをクリックしないとなりません。 これってこういうものなんですか? けっこう数があるので面倒です。 ENTERキーを押したら右に自動で移動してくれるようになりませんか?

  • EXCELで指定のセルで自動改行したい

    EXCELについての質問です。 通常エンターキーを叩くたびオプションで指定の通り下方向に延々と移動しますよね。 それを例えばセル番号で言うとエンターキーを叩くたびA1→B1→A2→B2→C1・・といったような指定って可能なんでしょうか? EXCELはかじり程度で素人同然なので、詳しい方いらしたらぜひお力添え頂きたいです。

  • excelの入力について

    エクセルで1桁の数字を1列にたくさん入力したいのですが、エンターキーを押すのが面倒に感じます。で、1桁数字を入力した瞬間に次の行に移動してくれたらいいのですが、恐らくVBAで何とかなるような気がするのですがどのように記述したらいいのか分かりません。このようなことが可能なら教えて頂きたいです。よろしくお願いいたします。

  • エクセルで数字を入力すると自動的に桁が下がってしまいます

    エクセルに数字を入力しようとすると、 自動的に2桁繰り下がって表示されてしまいます。 「2」と入力すると「0.02」になってしまいます。 「'2」と入力すれば「2」と表示できるのですが、 表計算を受け付けなくなってしまうようでした。 セルの書式設定などを探したのですが、直せません。 直し方をご存知の方はどうか教えてください。 ちなみにバージョンは2000です。

専門家に質問してみよう