[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの移動について』(初心者)
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・・・と移動することができますか?
初心者なので宜しくお願いします。
その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)
>”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)
ということは、セルの移動を右にする、というところまではできているんですね。 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.