Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


15561 / 76734 ←次へ | 前へ→

【66649】Re:入力後のセル移動
回答  UO3  - 10/9/21(火) 15:47 -

引用なし
パスワード
   ▼たろう さん:

こんにちは

回答そのものは、よろずやさんから出ています。

ちょっと気になった点。
対象のシートが、仮にブックを開いたときにアクティブだった場合、
この時点ではシートの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

3 hits

【66638】入力後のセル移動 たろう 10/9/17(金) 18:08 質問
【66639】Re:入力後のセル移動 よろずや 10/9/17(金) 19:38 回答
【66649】Re:入力後のセル移動 UO3 10/9/21(火) 15:47 回答
【66650】Re:入力後のセル移動 teian 10/9/21(火) 19:57 発言
【66652】Re:入力後のセル移動 UO3 10/9/21(火) 23:00 発言

15561 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free