- 締切済み
VBでのカーソル移動
こんばんは。 教えてください。 入力可能なセルが2個だけのエクセルの表があります。 C6には「年」、E6「日付」が入ります。 それ以外のセルに触ると「ここは入力できません」と 表示が出て、C6にカーソルが戻ります。 VBにて作成してあります。 ここで、追加で、 C6のセルに入力後、「enter」を押すとE6にカーソルが移動 E6のセルに入力後、「enter」を押すとC6にカーソルが移動 が出来るようにしたいのですが、どのように記入したらいいか 分かりません。 どなたか教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- merlionXX
- ベストアンサー率48% (1930/4007)
回答No.1
ActiveSheet.EnableSelection = xlUnlockedCells で、保護されたシートはロックを解除したセルしか選択できなくなります。 入力するセルが2つだけなら、その二つのセルのロックを解除し、シート保護して上記マクロを走らせれば、ご要望のような動きになると思います。 なお、上記を解除するのは ActiveSheet.EnableSelection = xlNoRestrictions です。
お礼
ちょっと、質問の内容を明確にして再度カテゴリーを絞って 質問しなおします。 今回のここでのご回答ありがとうございました。 保護をかけた場合でも使いたい物がありますので、 今度利用してみます。 ありがとうございました。
補足
説明が足りなくてすみません。 実は、この表は年配のパソコンがほとんど分からない方が 使う表で、保護をかけた時のエラーの長い文章が出ると パソコンが壊れたと思うらしく、わざと、保護はかけずに Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.Intersect(Target, Range("A1:IV5,A6,B6,E6,H6:IV6,A7:IV65536")) Is Nothing Then Else MsgBox "「年」と「月」以外の欄には入力できません" Range("C6").Select End Sub と入れて、簡単なメッセージでエラーを伝えるのみで シートの保護はしておりません。 これに追加して、記載することで、 C6に入力したらE6に、E6に入力したらC6にカーソルが 入力できるセルだけを行き来したいのです。 宜しくお願いいたします。