- 締切済み
excelでカーソルの移動を制限するには?
Win98でExcel2000です。次のことは可能でしょうか? 1.カーソルの移動を隣あった2列のみに制限し、どのキーを押してもそれ以外には移動できないようにしたい。ただしその2列以外も表示はさせておく。 2.その2列の中で入力後Enterのみでこのように移動する。左の列からは同じ行の右の列へ、右の列からは下の行の左の列へと、つまりZの字を書くようにしたい。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
#3のものですが、再度追加します。 質問後半2.の点も含めて Dim flg1 As Boolean Private Sub Worksheet_Change(ByVal Target As Range) r = Target.Row c = Target.Column If c = 3 Then Cells(r + 1, 2).Select flg1 = True End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) r = Target.Row c = Target.Column If flg1 = False Then If c > 3 Then Cells(r, 3).Activate c = 3 End If If c < 2 Then Cells(r, 2).Activate End If End If flg1 = False End Sub で主旨に沿った動きをしますが、実用に耐えるかどうか 心許ないです。
- imogasi
- ベストアンサー率27% (4737/17069)
VBAで出来る範囲でやって見ました。 B,C列にのみ入力が出来る(カーソルがA列とD列より 右に行かない)ようにします。 シートのSelectionChangeイベントを捉えるものです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) r = Target.Row c = Target.Column If c > 3 Then Cells(r, 3).Activate End If If c < 2 Then Cells(r, 2).Activate End If Application.MoveAfterReturnDirection = xlToRight End Sub 後半が上手く出来ないので考えます。
ご質問を確認しますと、 例.B5~C20までを、「B5・C5・B6・C6・・・」と連続して入力し移動したい。 という事でよろしいでしょうか? もしそうであれば、まず、ツールメニューのオプションから編集タグを選び、「入力後セルを移動する」を下から右に変えます。その後上の範囲をマウスで範囲指定してやれば、エンターを打つだけでご希望の動きにはなりますよ。 ただ、どのキーを押してもというのは私は知りません。ごめんなさい。
- taknt
- ベストアンサー率19% (1556/7783)
1. ActiveSheet.ScrollArea = "A5:B10" これで A5からB10までです。 2. ツールのオプションを開き、編集のところで 入力後にセルを移動する 方向とあるのを右に します。 以上