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

タイトル Re^2: Excel処理の繰り返しでNG
投稿日: 2010/02/12(Fri) 10:36
投稿者ぽよ〜ん
魔界の仮面弁士様、素早い回答有り難う御座いました。

> > Set xlApp = CreateObject("Excel.Application")
> 参照設定している場合は、
>  Set xlApp = New Excel.Application
> と書けますよ。
参考になります。元ソースは変更致しました。

>   .Rows("10:10").Select   '行を選択
> >   With Selection          'コピーして下へ
> ここが NG。
> ここで「Selection」と書いていますが、対象オブジェクトが指定されていません。
> どのオブジェクトの Selection プロパティなのか、親オブジェクトを明記しましょう。
> 親オブジェクトが指定されなかった場合、暗黙の Excel インスタンスが
> グローバル オブジェクトとして参照される事になります。Excel VBA であれば、
> 「自分自身」を操作するだけなので問題はありませんが、外部(VB6 等)から
> 操作する場合には、親オブジェクトを必ず指定する必要があります。
Excelから取得したマクロの記録ソースを元に作っていったのですが、言われる通りです。
とても分かりやすく説明して頂き、感謝致します。
今までのソースでデバッグを繰り返していると、システムが不安定になっていたのも
頷けます。元ソースを次のように変更してみました。

    With xlSheet
        .Activate
        For i = 1 To 5
            With .Range("10:10")
                .Select   '行を選択
                .Copy
                .Insert Shift:=xlDown
            End With
        Next
        ' 下線を二重線で引く
        .Range("B15:E15").Select
        With .Range("B15:E15").Borders(xlEdgeBottom)
            .LineStyle = xlDouble
            .Weight = xlThick
            .ColorIndex = xlAutomatic
        End With
    End With

何回かプログラムをループさせながら動作してみましたが、目的の処理は
行われているようです。書き方が正しいかどうかは不安ですが。

有り難う御座いました。今後も宜しくお願い致します。

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

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