下記マクロはカーソルの相対移動で教えいいただいたものです。
セルに値を入力しないで、Enterを押下した時もこのように動作させるためにはどのように記述したらいいでしょうか。教えてください。よろしくお願いいたします。
Private Sub Worksheet_Change(ByVal Target As Range)
if Target.Column = 2 Then Cells(Target.Row,5).Select
if Target.Column = 5 Then Cells(Target.Row,7).Select
if Target.Column = 7 Then Cells(Target.Row + 1, 2).Select
End Sub
No.2ベストアンサー
- 回答日時:
無理矢理やるなら、Application.Onkeyを用いてできます。
Sheet1でのみ機能を有効に設定する例です。ご参考まで。
☆Sheet1モジュール
'他のシートからSheet1に移った時にしか有効にならないので、ブックオープン時に別のSheetをActiveにする様な仕込みが必要になります。
ご質問にあるWorksheet_Changeイベントのコードは削除しても良いと思います。
Private Sub Worksheet_Activate()
setJumpCell
End Sub
Private Sub Worksheet_Deactivate()
resetJumpCell
End Sub
☆標準モジュール
参考URLをご覧下さい。当方NotePCなので、RETURNについてのみ動作確認しています。
Sub setJumpCell()
Application.OnKey "{RETURN}", "jumpCell"
Application.OnKey "{ENTER}", "jumpCell"
End Sub
Sub jumpCell()
Dim myCell As Range
Set myCell = ActiveCell
'If文は、本当は無くてもOKだが念のため
If myCell.Parent.Name = "Sheet1" Then
Select Case myCell.Column
Case 2
Cells(myCell.Row, 5).Select
Case 5
Cells(myCell.Row, 7).Select
Case 7
Cells(myCell.Row + 1, 2).Select
'目的の列以外で、Returnを押したとき、一行下に移動する様にする
Case Else
myCell.Offset(1, 0).Select
End Select
End If
End Sub
Sub resetJumpCell()
Application.OnKey "{RETURN}"
Application.OnKey "{ENTER}"
End Sub
参考URL:http://ameblo.jp/blueskyame/entry-10278830817.html
No.1
- 回答日時:
エクセルシートのイベントにEnterはありません。
ですから質問者が言っていることは出来ません。SelectionChangeイベントなどあるが、ぴったりではないでしょう。値を入れるときに困る。ダブルクリックイベントなどもあるが、忘れないようにするのも大変。
ーー
どうもこんなことを聞くのは、質問者は、VBAも含めて、エクセルの初心者だと思うが、初心者がイベントを、弄ばないと出来ないことを考えるのはやめたほうが良いと思う。
エクセルはセル選択は、人間がやるように出来ているのが仕組みだ。
ーー
やるなら、別の面から、例えばフォームというものを作って、入力するデータ項目を、フォームのテキストボックス(複数)にでも集めてそこに入力する。もし、そのある項目を飛ばすときは、TABでも使って、飛ばす。そこから全項目入力終了時に、各セルに値をセットするなどを行う。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
【Excel VBA】指定行以降をクリ...
-
【Excel】指定したセルの名前で...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定の文字を条件に行挿入とそ...
-
DataGridViewの各セル幅を自由...
-
Excel vbaで特定の文字以外が入...
-
Excelのプルダウンで2列分の情...
-
Excelのハイパーリンクにマクロ...
-
【VBA】シート上の複数のチェッ...
-
Excelで指定した日付から過去の...
-
実行時エラー438 オブジェクト...
-
指定した条件で範囲選択したい
-
EXCELで変数をペーストしたい
-
VBAを使用した時間管理
-
EXCELのVBA-フィルタ抽出後の...
-
VBA初心者です。結合セルを保持...
-
UWSCで値のみコピーするには?
-
DataGridViewのセルのItem設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報