• ベストアンサー

初心者です。アクティブセルを下のセルに移動させる方法

アクティブになっているセルに何か入力されていたら 下のセルに移動するというのはどうすればいいのでしょうか? またとある列以外ををアクティブにするとエラーが出るようにしたいのですが、どうしたらいいでしょうか? いろいろ試しているのですが上手くいきません、どなたかお願い致します!

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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)
回答No.2

>アクティブになっているセルに何か入力されていたら下のセルに移動する 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)
回答No.1

こんにちは、じゃんぬねっと です。 > アクティブになっているセルに何か入力されていたら > 下のセルに移動するというのはどうすればいいのでしょうか? 何の話ですか? Excel ですか? Spread ですか? FlexGrid ですか? Excel であれば、以下などを参考にしてください。 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv206.html#3

関連するQ&A

専門家に質問してみよう