回答編集履歴
2
「ワークアクティブ化」→「アクティブ化」
test
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
|
36
36
|
2. CopyFromRecordset メソッドが呼び出されると「レコードセット全体のデータを指定範囲に出力する処理」を実行してから「日付/時刻型のフィールドの出力範囲の表示形式を`yyyy/m/d`に初期化する処理」を行おうとする。ところが、**後者の処理の実際の対象が「その時点でのアクティブシート」となっている**。
|
37
37
|
|
38
|
-
3. したがって、「新規ワークシートが非アクティブ化されている状態」から「新規ワークシートが
|
38
|
+
3. したがって、「新規ワークシートが非アクティブ化されている状態」から「新規ワークシートがアクティブ化されている状態」に移行し終えるまでのごく短い時間に CopyFromRecordset メソッドが呼び出されていることにより、件の現象が発生しているものと考えられる。
|
39
39
|
|
40
40
|
回避策としては、 CopyFromRecordset メソッドが呼び出される前に
|
41
41
|
出力先となるブックとワークシートを明示的にアクティブにすることではないかと思います。
|
1
「と実行してから」→「を実行してから」
test
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
|
34
34
|
1. Sheets.Add メソッドの呼び出しに際し、「空のワークシートの作成」と「作成したシートのアクティブ化」という2つのプロセスが発生する。この時、前者のプロセスと後者のプロセスの間(極めて短い時間)に「新規ワークシートが非アクティブ化されている状態」が生じることになる(また、Add メソッドそのものは非同期で実行されている可能性が高い)。
|
35
35
|
|
36
|
-
2. CopyFromRecordset メソッドが呼び出されると「レコードセット全体のデータを指定範囲に出力する処理」
|
36
|
+
2. CopyFromRecordset メソッドが呼び出されると「レコードセット全体のデータを指定範囲に出力する処理」を実行してから「日付/時刻型のフィールドの出力範囲の表示形式を`yyyy/m/d`に初期化する処理」を行おうとする。ところが、**後者の処理の実際の対象が「その時点でのアクティブシート」となっている**。
|
37
37
|
|
38
38
|
3. したがって、「新規ワークシートが非アクティブ化されている状態」から「新規ワークシートがワークアクティブ化されている状態」に移行し終えるまでのごく短い時間に CopyFromRecordset メソッドが呼び出されていることにより、件の現象が発生しているものと考えられる。
|
39
39
|
|