回答編集履歴

2

「ワークアクティブ化」→「アクティブ化」

2025/03/21 02:47

投稿

sk.exe
sk.exe

スコア1040

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

1

「と実行してから」→「を実行してから」

2025/03/21 02:45

投稿

sk.exe
sk.exe

スコア1040

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