|
▼たろう さん:
こんにちは
回答そのものは、よろずやさんから出ています。
ちょっと気になった点。
対象のシートが、仮にブックを開いたときにアクティブだった場合、
この時点ではシートのActivateイベントが発生しません。
(というか、発生しているけど、VBAのチョンボでイベントルーティンに飛ばない?)
ですので、ブックを開いた時点で、アクティブシートが対象のものであれば【強制的に】
MoveAfterReturnDirectionを設定してやる必要があります。これはシートモジュールではなく
ThisWorkbookモジュールで対応しますので、他のコードも同じ場所に記述してみました。
【ThisWorkbookモジュール】
Option Explicit
Dim svMAR As Boolean
Dim svMARD As Long
Const mySheet As String = "Sheet1" '<== 対象シート
Private Sub Workbook_Open()
svMAR = Application.MoveAfterReturn
svMARD = Application.MoveAfterReturnDirection
If ActiveSheet.Name = mySheet Then Call SetMAR
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = mySheet Then Call SetMAR
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
ResetMAR
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ResetMAR
End Sub
Private Sub SetMAR()
Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlToRight
End Sub
Private Sub ResetMAR()
Application.MoveAfterReturn = svMAR
Application.MoveAfterReturnDirection = svMARD
End Sub
|
|