- ベストアンサー
初心者です。アクティブセルを下のセルに移動させる方法
アクティブになっているセルに何か入力されていたら 下のセルに移動するというのはどうすればいいのでしょうか? またとある列以外ををアクティブにするとエラーが出るようにしたいのですが、どうしたらいいでしょうか? いろいろ試しているのですが上手くいきません、どなたかお願い致します!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
下にセルの移動 SelectionChangeが重なってしまいますので、片方を、ThisWorkbook にしてみました。 '<ThisWorkbook> Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Not IsEmpty(Target) Then Target.Offset(1).Select End If End Sub こちらのイベントは、メッセージボックスではない、ポップアップにしてみました。 '<シートモジュール> Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'C列 D列に設定 If Target.Column = 3 Or Target.Column = 4 Then Exit Sub Application.EnableEvents = False Set WshShell = CreateObject("WScript.Shell") If Target.Column <> 3 Or Target.Column <> 4 Then WshShell.Popup "そこはダメよ", 1, "禁止" Cells(Target.Row, 3).Activate End If Application.EnableEvents = True Set WshShell = Nothing End Sub 以下は、エラーメッセージはでませんが、こんな方法もあります。 以下のようにすると、それ以外の列をアクティブにすることはできません。MsgBox などですと、Okを押さなくてはなりませんね。ポップアップでも、一定の時間(上記は約1秒)出ています。 登録して、再びOpen すると設定されています。 '<ThisWorkbook> Private Sub Workbook_Open() ThisWorkbook.Sheets(1).ScrollArea = "C:D" End Sub 解除するときは、こんな風にします。 Sub Release() ThisWorkbook.Sheets(1).ScrollArea = "" End Sub
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>アクティブになっているセルに何か入力されていたら下のセルに移動する Do Until (IsEmpty(ActiveCell)) ActiveCell.Offset(1, 0).Activate Loop 場合によっては、最下層のセルから .End(xlUp) した方がいいかもしれません。 >ある列以外ををアクティブにするとエラーが出る そのシートのSelectionChangeイベントを使って B列以外を選択すると、メッセージを表示し 強制的にB列に移動する Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column <> 2 Then '2 はB列 MsgBox "B列以外選択できません" Cells(ActiveCell.Row, 2).Activate End If End Sub
- JeanneNet
- ベストアンサー率48% (100/208)
こんにちは、じゃんぬねっと です。 > アクティブになっているセルに何か入力されていたら > 下のセルに移動するというのはどうすればいいのでしょうか? 何の話ですか? Excel ですか? Spread ですか? FlexGrid ですか? Excel であれば、以下などを参考にしてください。 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv206.html#3