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

タイトル Re^4: Excel処理の繰り返しでNG
投稿日: 2010/02/14(Sun) 08:14
投稿者ぽよ〜ん
魔界の仮面弁士様、アドバイス有難う御座います。
挿入の部分は、その都度変化するので以前のままでもと思いますが、
ラインを引く部分は、自動のマクロから取ったままなので冗長だったかも知れませんね。
1行で目的の処理が出来るならこの方が宜しいようですので、参考にさせて頂きます。
> xlSheet.Range("B15:E15").Borders(xlEdgeBottom).LineStyle = xlDouble

で、またまた挿入で思った処理が出来ずに悩んでしまいました。
Private Sub Command1_Click()
Dim i As Integer
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open(App.Path & "\xlTestFile.xls")
Set xlSheet = xlBook.Worksheets("Sheet1")
'xlTestFile.xls は予め用意をしておく
'B5:E10 まで格子状に罫線を引いただけのファイルで保存しておく
    On Error Resume Next
    ' Excel画面を非表示にして実行
    xlApp.Visible = True
    
    With xlSheet
        .Activate
        With .Range("10:10") ’このような書き方のほうがスピードアップする?
        For i = 1 To 5
            .Select
            .Copy
            .Insert Shift:=xlDown
        Next
        End With
    End With

    '前回と同じく、1回目はOKなのですが、2回目以降が旨く処理されない
'    xlSheet.Copy After:=Sheets(1)  '別の書き方でも試したが結果は同じ
    With xlBook.Sheets("Sheet1")
        .Select
        .Copy After:=Sheets(1)
    End With
    'シートをコピーしてそのシート内で色々な処理を行なう
    'オブジェクトの宣言と開放がやはり必要なのかな?
    'Set NewxlSheet = xlBook.Worksheets("Sheet1(1)") とか・・・?
    '旨く出来なかったけど・・・根本的なところが理解してないのかな〜
    'これも1回目は目的の処理をしてくれますが、2回目以降はコピーされない
    '元のSheet1内にデーターが書かれてしまう
    With xlBook.Sheets.Application
        .ActiveSheet.Activate
        .Range("B5").Value = 1234
    End With

    '保存時の問合せを非表示に設定
    xlApp.DisplayAlerts = False
    ' オブジェクトを解放します。
    Set xlSheet = Nothing
    xlBook.Close            'Book を閉じる
    Set xlBook = Nothing
    ' Quit メソッドを使って Excel を終了します。
    xlApp.Quit
    Set xlApp = Nothing
    
End Sub

Private Sub Command2_Click()
    End
End Sub

また長くて済みません。
要は、そのシートをコピーしてその中で処理をしたいだけなのですが、色々と書き方を
換えながら動きを見ているのですが、思った処理が出来ていません。
アドバイスなど頂けたら幸いです。皆様、宜しくお願い致します。

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

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