[[20081013162805]] 『セルの移動について』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの移動について』(初心者)

  A    B     C 
1 
2 
3 
4 
5 
6 

A1に入力しEnterを押してセルをB1に移動し、B1に入力しEnterを押してセルをA2に移動Enterを押してB2に移動、A1、B1、A2、B2、A3、B3、A4、B4・・・と移動することができますか? 

  初心者なので宜しくお願いします。


 senntakuhanniutinara

 その1
 ツール>オプション>編集 で入力後のセルの移動を 右 にしておき、
 AB列を選択状態にして入力する。
  
  
 その2
 A1 で入力、その後 Enter ではなく Tab キーで B1 へ移動。
 B1 に入力した後、Enterキーで A2 へ移動する。
  
  
 その3
 セルの移動の向きを 右 にしておき、VBAでイベントマクロを組む。

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 3 Then Target.Offset(1, -2).Activate
 End Sub

 シートタブを右クリックして、「コードの表示」にし、上のコードを貼り付ける。
 この動作が不要になったところで、このコードを削除する。

 (P)


(P)さん有難うございます、 ”AB列を選択状態”というのが良くわかりません、お恥ずかしいですが宜しくお願いします。(初心者)

 >”AB列を選択状態”というのが良くわかりません

 何か難しく考えられていませんか?
 AB列を選択というのはそのままの意味で、マウスでA列〜B列を選択するという事です。
 念のため更に補足しますと、エクセルを開くと

  A  B  C  D  E
 1
 2
 3
 4
 5

 というように、行と列に番号が振られていますね。
 ここの上記のAからBの部分をマウスで選択するという事です。

 選択すると「ここを選択してますよー」という意味でその範囲に色が付きますよね?
 で、その状態でそのまま、例えば1と入力してみて下さい。
 入力したら、Enterを押して下さい。カーソルがB1に移りましたよね?
 そこで2と入力し、Enterを押してみて下さい。
 カーソルがA2に移りましたよね?

 Pさんが言われている
 >ツール>オプション>編集 で入力後のセルの移動を 右 にしておき、
 >AB列を選択状態にして入力する。

 は、「範囲が選択されている状態でEnterを押すと、その範囲内のみでカーソルが動いていく」という事です。

 どの範囲を選択しても同じ振る舞いになると思うので、試してみると良いかもしれません。

 (Dil)


(Dil)さん有難うございました。”B1 に入力した後、Enterキーで A2 へ移動する”ができません、Enter
キーを押すとC1にセルが移動します、お恥ずかしいですが宜しくお願いします。(初心者)

 ということは、セルの移動を右にする、というところまではできているんですね。
 Pさんが示された案のその1にチャレンジされているんだと思いますが、A、B列を選択した状態に
 できていないのでしょうね〜

 Diiさんが示されているようにシート上の列名、グレーの背景色でA、B、C……となっている部分に
マウスカーソルを持って行くと、ポインタの形状が下向きの太めの矢印になりますよね?
 そこで、マウスの左ボタンを押したまま右へB列まで動かし、ボタンを離します。
 これが選択するという行為になります。
 どうでしょう、選択できました〜?
(かなれっと)


 予想ですが、AB列を選択後、更に入力するセルをクリックしてるのではないでしょうか?
 AB列を選択後、そのまま入力し始めるとお望みの状態になると思います。(くろすけ)

  AB列を選択したとき、AB列全体が反転し、その中で A1が白くなっていると思います。
 この時点で入力すると A1 に入力されます。

  でもいつも A1 からの入力を始めるとは限りませんね。
  A10 から始めて A10→B10→A11→B11→……としたいときは、A10 から B50とかを
 選択します。(B50 の 50 は適当です)このとき、A10:B50 が反転し、A10 が白くなって
 いますので、このまま入力すると A10 から入力できます。
  
  
  このやり方の欠点は、ついどこかのセルをクリックしたり、矢印キーでカーソル移動
 をしてしまうと選択状態が解除されてしまうところです。

  A列→B列→次のA列→B列→…… という作業ばかりが大量に続くのなら、先にお示し
 したマクロを試されるとどうでしょう。
  マクロも奥は深いようですが、今回のような場合に使うだけなら簡単です。

 あらためてやり方を書きますと、

 まず、カーソル移動の向きを右向きに設定しておきます。それから、そのシートの
 タブ(シートの下の"Sheet1"とかあるところ)を右クリックして、「コードの表示」を
 クリックします。  MicrosoftVisual Basic というウインドが開くので、右側の
 真っ白けのところに次のコードをコピー・貼り付けをします。

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 3 Then Target.Offset(1, -2).Activate
 End Sub

 これで、またシートに戻って、A列のどこかのセルに入力すると、すぐ右の B列の
 セルに移動し、そこに入力すると、1行下の A列のセルに移動します。
 なお、このマクロが有効な間は、C列の選択やC列への入力ができません。
 D列より右では特に何も変わったことは起こりません。

 この作業が不要になったら、先のコードを消去します。

 (P)

 同じくチェンジイベントを使った別の方法です。
 入力してEnterキーを叩くと A1B1A2B2C1C2 といった塩梅にアクティブセルが移動
 します。
      (弥太郎)
 あぁ、それからコードの貼り付け方はPはんのやり方に倣ってくらはい。
 '-------------------------
 Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Column > 2 Then Exit Sub
        If .Count > 1 Then Exit Sub
        If .Column = 1 Then
            .Offset(, 1).Select
        Else
            .Offset(1, -1).Select
        End If
    End With
 End Sub


 ↑ 
 With Target のブロックの中では Target.Column ではなくて .Column でいいのでは? 
 Target があっても動くと思いますが。

 おぅ、その通りですわ。^^
 いや、始めWithの外で処理しとったんを急遽中に入れたもんで、消すのを忘れとりま
 した。名無しはん、おおきに。
 ついでに、HNもわすれんとっておくんなはれ。
     (弥太郎)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.