投稿日 | : 2003/09/16(Tue) 16:49 |
投稿者 | : tak |
Eメール | : |
URL | : |
タイトル | : Re^3: Excelシートのコピーについて |
> Dim app As Excel.Application
> Dim work1 As Excel.Workbook
> Dim work2 As Excel.Workbook
> Dim sheet1 As Excel.Worksheet
> Dim sheet2 As Excel.Worksheet
>
> Set app = CreateObject("Excel.Application")
> Set work1= app.Workbooks.Open("C:\template.xlt")
> Set work2 = app.Workbooks.Open("C:\copyfile.xls")
> Set sheet1 = work1.Worksheets("Sheet1")
> Set sheet2 = work2.Worksheets("Sheet1")
>
> sheet1.Copy Before:=sheet2
>
>それで、コピーする前に、Sheet1を削除して、そのあとコピーすればSheet1を新規作成して
>くれるのかと思ったのですが、作成されずにsheet1.Copy Before:=sheet2の処理のところで
>エラーが出てしまいました。
ちょっと気になったのですが、「Sheet1を削除して」の「Sheet1」があるWorkbookは「Sheet1」
以外にもWorksheetは存在していますか?Workbook上にWorksheetがひとつしかない状態で
削除しようとするとエラーになります。
もし、そうなら
1.コピー先にNameプロパティが「Sheet1」というものがあるかチェック。
2.あればコピー後は「Sheet1(2)」になりますし、なければ「Sheet1」でコピーできます。
3.2で、「Sheet1(2)」になっているなら削除時の警告を出さないようにして、
「Sheet1」を削除し、「Sheet1(2)」をリネームする。
この仕様で可能なはずですよ。