VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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)」をリネームする。
この仕様で可能なはずですよ。


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -