VBでエクセルのシートをコピーするには?

解決


MAKOTO  2004-10-07 23:36:00  No: 85922

お世話になっております。
過去ログで似たようなものがあり参考にさせていただいたのですが
エラーになってしまうため質問させていただきました。

Test1.xlsのシートをTest2.xlsにコピーしたいのですがうまくいきません。
エラー内容は「Worksheet クラスの Copy メソッドが失敗しました。」とでます。
どなたか理解できる方がいらっしゃいましたら、ご教授をお願い致します。
環境は  VB6.0(SP5)  Excel2000です。

    Dim objMoto As Object
    Dim objSaki As Object

    ' エクセルを起動
    Set objMoto = CreateObject("Excel.Application")
    Set objSaki = CreateObject("Excel.Application")

    ' エクセルファイルを開く
    objMoto.Workbooks.Open "C:\Text1.xls"
    objSaki.Workbooks.Open "C:\Text2.xls"

    objMoto.Visible = True
    objSaki.Visible = True

    objMoto.Sheets(1).Select
    objMoto.Sheets(1).Copy After:=objSaki.Sheets(objSaki.Sheets.Count)

    objMoto.Workbooks.Close
    Set objMoto = Nothing
    objSaki.Workbooks.Close
    Set objSaki = Nothing

よろしくお願い致します。


nanashi  2004-10-08 03:47:24  No: 85923

別プロセスだからです。
ひとつのプロセスでコピーすれば平気なハズです。

    Dim objMoto As Excel.Application
    
    ' エクセルを起動
    Set objMoto = New Excel.Application
    
    ' エクセルファイルを開く
    With objMoto
        .Workbooks.Open "C:\Text1.xls"
        .Workbooks.Open "C:\Text2.xls"
        
        .Visible = True
        
        .Workbooks(1).Sheets(1).Copy After:=.Workbooks(2).Sheets(.Workbooks(2).Sheets.Count)
        
        .Workbooks(2).Close True
        .Workbooks(1).Close
        
        .Quit
    End With
    
    Set objMoto = Nothing


MAKOTO  2004-10-08 04:20:49  No: 85924

nanashiさん大変ありがとうございました。
きちんと動作しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加