[[20180617220740]] 『セルをコントロールキーで選択した場合のカーソル』(しーちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルをコントロールキーで選択した場合のカーソルの移動VBA』(しーちゃん)

セルをコントロールキーで選択した分をアクティブのセル内容を確認の為表示し、背景の色を変更し斜線を引き次のセルに移動するを繰り返す処理なのですが、繰り返す回数はカウントで問題ないですが通常のシート内でのアクティブセルの移動はエンターキーで動くと思いますが、VBA内でエンターキーでは移動しないのはなぜか?
選択セル A5、C7、E9、E11、G13 コントロールキーで選択を処理ボタンをクリックし、メッセージボックスで処理内容を表示、Yesは斜線を引き次のセルに移動したい、Noは次のセルに移動したい、キャンセルは終了のVBAで選択したセル数は5 最初のアクティブセルの内容を5回表示し各処理を5回で終わってしまう

< 使用 Excel:Excel2010、使用 OS:unknown >


>次のセルに移動したい

選択する必要はないです

 Option Explicit

 Sub test()
    Dim c As Range

    For Each c In Selection
        MsgBox c.Address
    Next

 End Sub

(マナ) 2018/06/17(日) 22:40


ども^^

?なんで手動でそのまま設定しないのですか?

セルの選択を失敗したときは「元に戻す」をすればよくないですか?

マクロを使うと「元に戻す」が使えなくなるので逆に不便な気がします。

(まっつわん) 2018/06/18(月) 10:46


実際、下記のVBAではカーソルは移動しませんでした。
カレンダーを一つ一つ処理するのではなく複数選択(コントロールキー)して
一度に処理します。戻すときは初期処理で戻します。
Public Sub Cmd002()
    Dim MsgRun As VbMsgBoxResult
    MsgRun = MsgBox("出勤処理しますか", vbYesNo + vbQuestion)
    Select Case MsgRun
      Case vbYes
           'Call Application.OnKey("~", "Cmd0021")
           Call Cmd0021
      Case Else
           Exit Sub
    End Select
End Sub

Public Sub Cmd0021()
    Dim i    As Long
    Dim ClAd As String
    Dim MsgRun As VbMsgBoxResult
    Dim Cnt    As Range

    'Cnt = 0
    'i = Selection.Count
    'Do Until i = Cnt
    For Each Cnt In Selection
       ClAd = ActiveCell.Value
       MsgRun = MsgBox(ClAd & "出勤処理しますか", vbYesNoCancel + vbQuestion)
         Select Case MsgRun
           Case vbYes
                ActiveCell.Interior.Color = 16777215 '白色
                ActiveCell.Font.Color = 1 'フォント色:黒
                'Cnt = Cnt + 1
                'Application.SendKeys ("{Enter}")
           Case vbNo
                'Cnt = Cnt + 1
                'Application.SendKeys ("{Enter}")
           Case Else
                'Call Application.OnKey("~")
                Exit Sub
        End Select
    'Loop
    Next
End Sub
(しーちゃん) 2018/06/18(月) 12:35

 For Each Cnt In Selection
     Cnt.Select ’←ーーーーーーーこれを挿入すればいいんじゃないですか?
     ClAd = ActiveCell.Value

(半平太) 2018/06/18(月) 16:28


[[20180619115251]]で継続でしょうか?
(もこな2) 2018/06/19(火) 22:26

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.