プロが教えるわが家の防犯対策術!

VB6,Excel2003です。
既存のエクセルシートを新規ブックにコピーする
プログラムを作成してみましたが
タスクバーに新規ブックのタスクバーボタンが2つできてしまいます。
どこが原因か教えてください。よろしくお願いします。

Private Sub Command1_Click()
Dim xlsApp As Excel.Application
Dim xlsBookTemp As Excel.Workbook 'コピー元ブック
Dim xlsBookCopy As Excel.Workbook 'コピー先ブック
Dim xlsSheetTemp As Excel.Worksheet 'コピー元シート
Dim xlsSheetCopy As Excel.Worksheet 'コピー先シート

Set xlsApp = CreateObject("Excel.Application")
Set xlsBookTemp = xlsApp.Workbooks.Open("C:\Temp.xls")
Set xlsSheetTemp = xlsBookTemp.Sheets(1)
Set xlsBookCopy = xlsApp.Workbooks.Add
Set xlsSheetCopy = xlsBookCopy.Sheets(1)

xlsApp.Visible = True
'コピー元のSheet1を新規ブックにコピーする
xlsSheetTemp.Copy Before:=xlsSheetCopy
'コピー元のブックは閉じる
xlsBookTemp.Close

'///新規ブックの編集処理///

Set xlsSheetTemp = Nothing
Set xlsBookTemp = Nothing
Set xlsSheetCopy = Nothing
Set xlsBookCopy = Nothing
Set xlsApp = Nothing
End Sub

A 回答 (2件)

>'コピー元のブックは閉じる


>xlsBookTemp.Close

ここまでは何ら問題はないようですから
'///新規ブックの編集処理///の中で、
新たにブックの作成、コピー、別ブックのオープンなどしてるとか。

そうでなければ、誤ってCommandButtonを2回クリックしたとか。

ところでタスクバーの2つのブックのタイトルはどうなってますか。
 

この回答への補足

回答ありがとうございます。
タスクバーの2つのタイトルは
・Book1
・Microsoft Excel - Book1
となっています。どちらかをクリックすると
Microsoft...の方が消えてBook1のタスクバーボタンのみになります。
そのBook1を閉じて、VBを終了せずに再度VBのコマンドボタン1をクリックしてみるとBook1のタスクバーボタンのみ表示されるようになりました。けれどVBを終了してやりなおすと、2つ表示されてしまいました。
'///新規ブックの編集処理///の中には今は何も記入していません。
ボタンも1度しかクリックしてないのですが。。。
なにが原因でしょうか?よろしくお願いします。

補足日時:2007/11/14 14:28
    • good
    • 0

またまた登場、onlyromです。



>'///新規ブックの編集処理///の中には今は何も記入していません
>VBを終了してやりなおすと、2つ表示されてしまいました

おかしいですね。
ということでブレークポイントをセットしてどこでそうなるかみてみないと。

Set xlsApp = CreateObject("Excel.Application")
▲▲xlsApp.Visible = True
Set xlsBookTemp = xlsApp.Workbooks.Open("C:\Temp.xls")
Set xlsSheetTemp = xlsBookTemp.Sheets(1)
●●Set xlsBookCopy = xlsApp.Workbooks.Add
Set xlsSheetCopy = xlsBookCopy.Sheets(1)

'コピー元のSheet1を新規ブックにコピーする
xlsSheetTemp.Copy Before:=xlsSheetCopy
'コピー元のブックは閉じる
●●xlsBookTemp.Close


▲▲のところに、xlsApp.Visible = True を移動
●●のところに、ブレークポイント

少なくともこれでどの時点で、質問の件が起こるかわかりますよね。


そしてそれが済んだら、
ブレークポイントを外して、
▲▲xlsApp.Visible = True を
●●xlsBookTemp.Close の後に移動
要するにコピーが済んでTempをクローズしてから、ExcelをActiveにするということです。

以上2つを試してみてください。
 
    • good
    • 0
この回答へのお礼

ブレークポイントをつけて順番に確認しながら
ステップインで実行していくと
タスクバーボタンは1つしか表示されないんです。
▲▲のところに、xlsApp.Visible = True を移動して
ブレークポイントをつけて実行しても同じでした。
なのに普通に実行すると2つできてしまいました。。。
でもTempブックを閉じてからにしたら1つになりました!!
お手数をおかけしました。ありがとうございましたTT

お礼日時:2007/11/14 16:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています