
Excelで指定桁数分を入力すると自動的に次のセルに移動するようにしたいのですが、このような方法の設定の仕方はあるでしょうか。
つまり例えばA1に「1234」と入力するとセルが自動で次のセル(A2)に移動して、すぐにA2での入力に移れるような方法を探しています。
各製品の長さを入力して表にしているのですが、いちいちエンターキーを押すのが煩雑で面倒です。ご存知の方がいましたら教えて頂ければとても助かります。
宜しくお願い致します。
===================
例)
1923
----- ↓自動で次のセルに以降
1897
----- ↓自動で次のセルに以降
1638
-----
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
'-------------------------------------------------
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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで指定した文字数入力したら自動で次のセルに飛ぶには
Excel(エクセル)
-
セルの自動移動
Excel(エクセル)
-
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
-
4
エクセル 1文字入力すると自動で横にセル移動
Windows Vista・XP
-
5
エクセルで決まった文字数で改行し,複数行の別のセルに移動させる方法
Excel(エクセル)
-
6
セルの文字を「印刷時だけ非表示」にしたいです。
Excel(エクセル)
-
7
エクセルのマクロをセルの値に応じて自動起動したい
Visual Basic(VBA)
-
8
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
9
エクセルVBA 文字を入力したら右へ移動 文字を入力せずにエンターを押しても右へ移動させたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba テキストボックスとリフト...
-
数式を残したまま、別のセルに...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
Excel 例A(1+9) のように番地の...
-
エクセルで太字だけの合計を出...
-
エクセルの書式設定の表示形式...
-
貼り付けで複数セルに貼り付けたい
-
Excelで6桁の文字列を時刻に変...
-
エクセルで複数のデータをセミ...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
エクセルで指定したセルのどれ...
-
アクティブにするとは?
-
エクセルでセルにページ番号を...
-
VLOOKUP関数の結果セルの右下の...
-
VLOOKUPとハイパーリンクの組み...
-
エクセルのセルの枠を超えて文...
-
c.m.c クラフト点 アルキル鎖...
-
セルの高さ(行高)を求めるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba テキストボックスとリフト...
-
貼り付けで複数セルに貼り付けたい
-
エクセルで指定したセルのどれ...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセル
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
エクセル オートフィルタで絞...
-
エクセルの書式設定の表示形式...
-
Excel 例A(1+9) のように番地の...
-
エクセルの一つのセルに複数の...
-
excelの特定のセルの隣のセル指...
-
EXCEL VBA セルに既に入...
-
Excelでのコメント表示位置
-
エクセルのセルの枠を超えて文...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
【Excel】 セルの色での判断は...
おすすめ情報