質問編集履歴
2
使用用途の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -77,3 +77,7 @@
|
|
77
77
|
```
|
78
78
|
|
79
79
|
Workbook_SheetDeactivateの時点でシートは既に切り替わっていて、切替前画面をアクティブにしなければScrollRow、ScrollColumnは取得できず、ScreenUpdatingをFalseにしてもActivateでの画面切替は制御出来ていないようです。
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
使用用途は複数のExcelファイルをシート別に読み込み、差分を色分けして分かるようにする機能を作ったので、シートを切り替えた時にページ移動しなくて済むようにしたいです。
|
1
コードにコメントを挿入
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,7 +8,11 @@
|
|
8
8
|
|
9
9
|
```ここに言語を入力
|
10
10
|
|
11
|
+
'シートがアクティブになったとき
|
12
|
+
|
11
13
|
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
|
14
|
+
|
15
|
+
'描画・イベント制限
|
12
16
|
|
13
17
|
Application.ScreenUpdating = False
|
14
18
|
|
@@ -16,9 +20,13 @@
|
|
16
20
|
|
17
21
|
|
18
22
|
|
23
|
+
'切替前シートのスクロール位置に移動
|
24
|
+
|
19
25
|
Application.Goto Sh.Cells(sBar_row, sBar_col), True
|
20
26
|
|
21
27
|
|
28
|
+
|
29
|
+
'描画・イベント制限解除
|
22
30
|
|
23
31
|
Application.EnableEvents = True
|
24
32
|
|
@@ -30,7 +38,11 @@
|
|
30
38
|
|
31
39
|
|
32
40
|
|
41
|
+
'シートが非アクティブになったとき
|
42
|
+
|
33
43
|
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
|
44
|
+
|
45
|
+
'描画・イベント制限
|
34
46
|
|
35
47
|
Application.ScreenUpdating = False
|
36
48
|
|
@@ -38,13 +50,21 @@
|
|
38
50
|
|
39
51
|
|
40
52
|
|
53
|
+
'切替前シートをアクティブにする
|
54
|
+
|
41
55
|
Worksheets(Sh.Name).Activate
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
'スクロール位置を取得
|
42
60
|
|
43
61
|
sBar_row = ActiveWindow.ScrollRow
|
44
62
|
|
45
63
|
sBar_col = ActiveWindow.ScrollColumn
|
46
64
|
|
47
65
|
|
66
|
+
|
67
|
+
'描画・イベント制限解除
|
48
68
|
|
49
69
|
Application.EnableEvents = True
|
50
70
|
|