tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^6: Excel処理の繰り返しでNG
投稿日: 2010/02/14(Sun) 14:32
投稿者ぽよ〜ん
魔界の仮面弁士様、ありがとうございます。
> 同じ間違いを繰り返していますよ。
やっぱりよく分かってないようです。
> 「Sheets」の親オブジェクトが指定されていません。
あれこれ調べて xlSheet.Copy After:=xlBook.Sheets(1) として記述したら
目的の処理をしてくれました。複数回でも同様です。

> また、そもそも ActiveSheet を使うのではなく、どのシートかを
> 明示的に指定すべきかと思います。
    With xlBook.Sheets(2)
        .Activate
        .Range("B5").Value = 1234
    End With
このように記述して、動作させました。

> 原則として、End ステートメントは使うべきではありません。
> 替わりに、すべてのフォームを Unload する事で終了させましょう。
・・・・・
> たとえば今回のように、同一箇所に複数行を挿入する場合、
>  ・「1 行挿入」を X 回繰り返す。
> よりも
>  ・「X 行挿入」を1回行う。
> 方が、Excel との通信回数が減る分、処理効率が良くなります。
>
> 特に VB6 から操作するなどの、「外部から」Excel を操作する際には、環境によっては
> プロパティ/メソッドの通信回数の増加が、ハングアップの要因となる事もあります。
> http://support.microsoft.com/kb/414107/ja
ありがとうございます。勉強になります。
言われてみればそうですよね。元のソースは改定いたしました。

タスクマネージャーから確認してもEXCELの残骸も無さそうだし、これでOKなのかな〜
本当に勉強になりました。上の書き方で問題なければこのまま進めて見ます。
有難う御座いました。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。