アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクティブになっているセルに何か入力されていたら
下のセルに移動するというのはどうすればいいのでしょうか?

またとある列以外ををアクティブにするとエラーが出るようにしたいのですが、どうしたらいいでしょうか?

いろいろ試しているのですが上手くいきません、どなたかお願い致します!

A 回答 (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
    • good
    • 0

>アクティブになっているセルに何か入力されていたら下のセルに移動する


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
    • good
    • 0

こんにちは、じゃんぬねっと です。



> アクティブになっているセルに何か入力されていたら
> 下のセルに移動するというのはどうすればいいのでしょうか?

何の話ですか?
Excel ですか? Spread ですか? FlexGrid ですか?

Excel であれば、以下などを参考にしてください。
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv206.htm …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!