【先着1,000名様!】1,000円分をプレゼント!

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

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>TABキーを押さず


>Enter等を押さずに

これは残念ながら不可能です。セルが編集状態にあるときには、これらのキーが押されなければ、EXCELのVBAのイベントが発生しません。
    • good
    • 2

>恐らくマクロしかないのかなという気はしています。


VBAでも出来ません。諦めてください。ワークシートのイベントにキーダウン関係がないですから。APIでも勉強されるなら、どうぞご自由に。
    • good
    • 0

補足ですが、、



ワークシートではなく、VBAのユーザーフォームを作成すれば、テキストボックスなどにはKeydownイベントがありますので、可能ですね。
    • good
    • 0

マクロで可能かと思いますが、、、



>1文字を入力したら(Enter等を押さずに)自動的に次のセル(指定したセル)に移動

これだと、入力ミスの訂正が大変なので次の方法でどうでしょうか?

1. データを入力するセルのみ選択
2. 右クリックメニュー[セルの書式設定]
3. [保護]タブにある[ロック]を解除
4. シートを保護

以上で、TABキーでカーソルが移動していきます。
だめですか?

この回答への補足

早速の回答ありがとうございます。
>TABキーでカーソルが移動していきます。

そのTABキーを押すさずに次のセルに移動する方法を探しています。
Enter等を押さずにというのがそれです。
マクロでも構いませんというか、恐らくマクロしかないのかなという気はしています。

補足日時:2004/11/25 19:59
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル 1文字入力すると自動で横にセル移動

現在エクセルを利用してアンケートの結果入力をしています。
各セルには1文字の数字しか入れないのですが、
「数字」⇒タブキー(横移動)で1つ1つ打っています。

しかし、タブキーを使用しているとうち間違いなどがあり、セルが一つずつずれてしまったりしてしまいます。

どうにかエクセルに1文字入力すると何のキーも押さずに
自動で横にセル移動してくれるというようなことを設定できないでしょうか?

初心者ですいませんが、お願いします。

Aベストアンサー

私もその手の仕事が多いのでご要望自体は非常によくわかるのですが、
確定する前の入力の有無を捉えるのは難しいと思われます。

ご要望の本質的な内容としては、
例えば、
 3⇒Tab⇒1⇒Tab⇒4⇒Tab⇒2⇒Tab⇒5⇒Enter
とする代わりに
 31425⇒Enter
で済ませたい、ということですよね。

で、代替案ですが、
特定の列に複数の項目をまとめて入力し、数式でバラすようにすれば、
結果として、ご要望と同様の操作で入力できるようになります。

入力する列の表示形式を文字列に設定し、例えば、"31425"のように入力。
表示する列でMID関数を用いて、例えば =MID(A1,3,1) のようにしておけば、
3文字目の4を取り出すことができます。

桁数を揃えるために、"31-25"のように、
無回答の際に入力する文字をあらかじめ決めておく必要があります。
(必要があればあとから置換等を用いて削除する)

その後の集計処理の方法によっては、=VALUE(MID(A1,3,1)) のようにして、
取り出した文字を数値に戻しておいた方が良いかもしれません。

また、入力ミスを防ぐために、データ>入力規則 で
入力可能な文字列の長さをあらかじめ指定しておくのも有効です。

項目数が多い場合には、一度にまとめて入力すると修正が困難ですから、
4ないし5項目ごとに入力列を分けた方が良いと思います。

以上、ご参考まで。

私もその手の仕事が多いのでご要望自体は非常によくわかるのですが、
確定する前の入力の有無を捉えるのは難しいと思われます。

ご要望の本質的な内容としては、
例えば、
 3⇒Tab⇒1⇒Tab⇒4⇒Tab⇒2⇒Tab⇒5⇒Enter
とする代わりに
 31425⇒Enter
で済ませたい、ということですよね。

で、代替案ですが、
特定の列に複数の項目をまとめて入力し、数式でバラすようにすれば、
結果として、ご要望と同様の操作で入力できるようになります。

入力する列の表示形式を文字列に設定し、例えば、"31425"のよう...続きを読む

Qエクセルの入力セルを自動的に移動させることは可能ですか?

今エクセルで名簿を打ち込んでいるのですが、入力部分のセルが一定の場所に来たら、任意の場所に自動的に移動させることって可能でしょうか?
要は横一列に打ち込んでいるんですが、必要な部分で下の行に移動したいんですよ~。
どなたかご存じでしたら教えて下さい<(_ _)>

Aベストアンサー

#1の方の回答でも大丈夫ですが、共同利用しているパソコンで、入力後のセル移動の方向を変更すると、他の利用者が困ることも多いですから、Tabキー(右セルに移動)とEnterキー(下セルに移動)を使い分けてください。

範囲選択してTabキーで次のセルに進めば、基本は右に行き、右端までくると次の行の左端に進みます。

なお、範囲選択してTabキーで進む方法は、矢印キーやクリックで範囲選択が解除されるので注意してください。

また、範囲選択しないでも、Tabキーで次に進み、右端のセルを入力後、そこだけEnterキーを押すと、Tabキーを押し始めたセルの下のセルに進みます。

こちらも、矢印キーやクリックをすると、Tabキーを押し始めたセルがリセットされます。

いずれにしても、矢印キーやクリックで、次の入力するセルを指定することは厳禁です。

ちなみに、Shift+Tabキーで、Tabキーと逆に、Shift+EnterキーでEnterキーと逆に動きます。

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセルで複数の条件を抽出し自動的に別シートに反映する方法を教えてください。

こんばんは。教えてください。

元データ(sheet1)を更新するたび
2つの条件にあったデータを
別シートに自動的に抽出したいので
適した関数がありましたら教えてください。



◇シート1◇ ※元データ
 A      B     C     D     F
1 氏名 役職 部署 年齢 移動時期     
2 山田 社員 開発 45  未調整
3 田中 社員 人事 42  4/1~
4 鈴木 派遣 企画 30  
5 高橋 役員 人事 50  未調整
6 坂野 社員 企画 33  未調整  
7 井上 派遣 企画 29  未調整

◇シート2◇ ※部署が人事で移動時期が未調整の人のみ抽出
 A      B     C     D    F
1 氏名 役職 部署 年齢 移動時期 
2 高橋 役員 人事 50  未調整


補足
・元データ(シート1)はこれからもデータを追加するので
 その度、シート2、シート3もそれぞれ自動で反映されるようにした いです。

・マクロ、VBAは知識がないので
 関数で作成したいです。

・できるだけエラー(#N/Aなど)表示されないようにしたいです。

説明が不十分で伝わりにくいかと思いますが
よろしくお願いします。

こんばんは。教えてください。

元データ(sheet1)を更新するたび
2つの条件にあったデータを
別シートに自動的に抽出したいので
適した関数がありましたら教えてください。



◇シート1◇ ※元データ
 A      B     C     D     F
1 氏名 役職 部署 年齢 移動時期     
2 山田 社員 開発 45  未調整
3 田中 社員 人事 42  4/1~
4 鈴木 派遣 企画 30  
5 高橋 役員 人事 50  未調整
6 坂野 社員 企画 33  未調整  
7 ...続きを読む

Aベストアンサー

> 部署を"人事"と"企画"の両方で抽出する条件を追加する

おはようございます、merlionXXです。
Operator:=xlOr, Criteria2:="=企画" と、OR条件で"企画"を加えれば可能です。
一応、各コードの動きに解説もつけておきました。(解説は’でコメントアウトしてますのでこのまま貼り付けてもOKです。)

Private Sub Worksheet_Activate() 'このシートがアクティブになったら自動実行
With Sheets("Sheet1") 'Sheet1対して
.AutoFilterMode = False 'オートフィルタ終了(あればエラーになるため)
.Range("A1:E1").AutoFilter 'A1:E1にオートフィルタ設定
.Range("A1:E1").AutoFilter Field:=3, Criteria1:="=人事", Operator:=xlOr, Criteria2:="=企画" '左から3つ目のフィルタを"人事"と"企画"のOR条件で抽出
.Range("A1:E1").AutoFilter Field:=5, Criteria1:="未調整" '左から5つ目のフィルタを"未調整"で抽出
.Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1") 'A1から最終セル範囲の可視セルをこのシートのA1以降に貼り付け
.AutoFilterMode = False 'オートフィルタ終了
End With 'Sheet1に対する記述おわり
End Sub

> 部署を"人事"と"企画"の両方で抽出する条件を追加する

おはようございます、merlionXXです。
Operator:=xlOr, Criteria2:="=企画" と、OR条件で"企画"を加えれば可能です。
一応、各コードの動きに解説もつけておきました。(解説は’でコメントアウトしてますのでこのまま貼り付けてもOKです。)

Private Sub Worksheet_Activate() 'このシートがアクティブになったら自動実行
With Sheets("Sheet1") 'Sheet1対して
.AutoFilterMode = False 'オートフィルタ終了(あればエラーになるた...続きを読む

QEXCELのセルが動かないです

普通は、矢印キーを押すと、セルが動きますよね。

今日、仕事中
矢印キーほ押してもセルが動かなくなりました。
画面は動きますがセルがついて来ないのです。
そのPCで使う場合どのエクセルも同様の動きです。

ツールバーあたりを設定する必要がありますかね。

Aベストアンサー

そのPCのScroll Lock (Scr Lk)キーが押されていませんか?

Qセル移動時エンターキーを押す回数

エクセルでデータ入力時、
数字を入力してエンターキーを押しますが
一度押すだけで次のセルに移動する場合と、
二度押さないと移動しないときがあります。

一度押すだけでセルが移動する方法を教えてください

Aベストアンサー

日本語入力モード(IMEオン)になってたりしません?

QエクセルでB列の数値がA列(A1:A10)の範囲に存在するかどうかを知りたい

こんばんは。
エクセルでこのようなことができるのかどうか分からないので、教えてください。

B列の数値がA列(A1:A10)の範囲に含まれる数値なら○、含まれない数値なら×と、C列に表示したいのですが、エクセルでそのようなことはできるのでしょうか。
できるのであれば方法を教えていただけますでしょうか。
よろしくお願いいたします。

<<最終的な結果は以下のように表示したいです>>

  A B C

1 12 19 ○

2 15 20 ○

3 19 28 ○

4 20 30 ×

5 23 34 ○

6 28 35 ×

7 32 38 ×

8 34 39 ○

9 39

10 40

Aベストアンサー

セル C1 に式 =IF(COUNTIF(A:A,B1),"○","×") を入力して、此れを下方にズズーッと複写

Qエクセル カーソルを任意のセルに飛ばしたい!!

エクセルで[Tab]や[Enter]を押してA3→B5→C8などのように任意のセルにカーソルを飛ばすことは可能でしょうか??
ACCESSではタブオーダー機能で出来ると思いますが、Excelにも似たような機能はあるのでしょうか?
おわかりの方教えてくださーい!

Aベストアンサー

良く出る質問ですが、私は、いつも、以下のように回答をしています。少し、複雑ですが、VBAが分かる方でしたら、可能かと思います。

「エクセル : 指定位置へジャンプさせるには?」
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2281174
( http://okwave.jp/kotaeru.php3?q=2281174 )

Accessのコントロールは、コントロールに、 TabIndex というプロパティがありますが、それとExcelのワークシートとは構造的にかなり違います。Excelのは、ワークシート全体が、コントロールに近いものです。

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

Excelで指定桁数分を入力すると自動的に次のセルに移動するようにしたいのですが、このような方法の設定の仕方はあるでしょうか。

つまり例えばA1に「1234」と入力するとセルが自動で次のセル(A2)に移動して、すぐにA2での入力に移れるような方法を探しています。

各製品の長さを入力して表にしているのですが、いちいちエンターキーを押すのが煩雑で面倒です。ご存知の方がいましたら教えて頂ければとても助かります。

宜しくお願い致します。

===================
例)

1923
----- ↓自動で次のセルに以降
1897
----- ↓自動で次のセルに以降
1638
-----

Aベストアンサー

こんにちは。...かなりベタなコードで、うまく動かないかもしれませんが...
...なのでテストは充分に行ってください。
>各製品の長さ
という事なので、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
'-------------------------------------------------

こんにちは。...かなりベタなコードで、うまく動かないかもしれませんが...
...なのでテストは充分に行ってください。
>各製品の長さ
という事なので、10キー限定です。
3桁には対応させてません。(その場合はEnterキー)

標準モジュールに以下の3つのコードをコピーペーストします。
『Sub Num_in』というのが本体です。
『Sub スタート』を実行する事で、この機能を ON にします。
『Sub 解除』で OFF にします。

'-------------------------------------------------
Sub スタート()
  Dim i...続きを読む

Qエクセルで特定の行を削除したいのですが。

エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。
どなたか詳しい方お教えいただけませんでしょうか?

やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロとかを使うのでしょうか?
宜しくお願いいたします。

Aベストアンサー

マクロを使う別の方法です。
XXXの部分を特定の文字に置きかえて実行してください。
また、「特定の文字があれば」というのが、その文字列を含む、というのでなくセルの値がその文字列ならば、というのであれば、LookAt:=xlPart の部分を LookAt:=xlWhole に書き換えてください。

Sub DelLines()
  Dim R As Range
  Do
    Set R = ActiveSheet.Range("B:B").Find(What:="XXX", LookAt:=xlPart)
    If R Is Nothing Then Exit Sub
    R.EntireRow.Delete
  Loop
End Sub


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング