回答編集履歴

3

説明追記

2020/10/12 01:21

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -71,3 +71,11 @@
71
71
  End Sub
72
72
 
73
73
  ```
74
+
75
+
76
+
77
+ `Now() + TimeValue("00:00:01")`で1秒後に実行してますが、
78
+
79
+ `Now() + 200 / 86400000` とすると200ミリ秒後(0.2秒後)に実行します。
80
+
81
+ 当方の実験では 10ミリ秒後にしても表示されました。

2

コード修正

2020/10/12 01:21

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -54,6 +54,8 @@
54
54
 
55
55
  ```vba
56
56
 
57
+ Private Sub Workbook_Open()
58
+
57
59
  ThisWorkbook.Activate
58
60
 
59
61
  ActiveWindow.Visible = True
@@ -62,6 +64,10 @@
62
64
 
63
65
 
64
66
 
67
+ '1秒後に実行
68
+
65
- Application.OnTime EarliestTime:=Now() + TimeValue("00:00:01"), Procedure:="Hoge" '1秒後に実行
69
+ Application.OnTime EarliestTime:=Now() + TimeValue("00:00:01"), Procedure:="Hoge"
70
+
71
+ End Sub
66
72
 
67
73
  ```

1

コード追記

2020/10/12 01:09

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -1,6 +1,6 @@
1
1
  ```vba
2
2
 
3
- Private Sub Auto_Open
3
+ Private Sub Auto_Open()
4
4
 
5
5
  ' 本ブックをアクティブ★
6
6
 
@@ -17,3 +17,51 @@
17
17
  ' ...
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ ---
24
+
25
+ ループで重い処理を作成して実験してみました。
26
+
27
+ 上記ではダメですね。
28
+
29
+ OnTime で遅延実行させたらいいようです。
30
+
31
+
32
+
33
+ **標準モジュール**
34
+
35
+ ```vba
36
+
37
+ Public Sub Hoge()
38
+
39
+
40
+
41
+ '実行したい処理
42
+
43
+
44
+
45
+ End Sub
46
+
47
+
48
+
49
+ ```
50
+
51
+  
52
+
53
+ **ThisWorkBook**
54
+
55
+ ```vba
56
+
57
+ ThisWorkbook.Activate
58
+
59
+ ActiveWindow.Visible = True
60
+
61
+ DoEvents
62
+
63
+
64
+
65
+ Application.OnTime EarliestTime:=Now() + TimeValue("00:00:01"), Procedure:="Hoge" '1秒後に実行
66
+
67
+ ```