
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
No.2ベストアンサー
- 回答日時:
またまた登場、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つを試してみてください。
ブレークポイントをつけて順番に確認しながら
ステップインで実行していくと
タスクバーボタンは1つしか表示されないんです。
▲▲のところに、xlsApp.Visible = True を移動して
ブレークポイントをつけて実行しても同じでした。
なのに普通に実行すると2つできてしまいました。。。
でもTempブックを閉じてからにしたら1つになりました!!
お手数をおかけしました。ありがとうございましたTT
No.1
- 回答日時:
>'コピー元のブックは閉じる
>xlsBookTemp.Close
ここまでは何ら問題はないようですから
'///新規ブックの編集処理///の中で、
新たにブックの作成、コピー、別ブックのオープンなどしてるとか。
そうでなければ、誤ってCommandButtonを2回クリックしたとか。
ところでタスクバーの2つのブックのタイトルはどうなってますか。
この回答への補足
回答ありがとうございます。
タスクバーの2つのタイトルは
・Book1
・Microsoft Excel - Book1
となっています。どちらかをクリックすると
Microsoft...の方が消えてBook1のタスクバーボタンのみになります。
そのBook1を閉じて、VBを終了せずに再度VBのコマンドボタン1をクリックしてみるとBook1のタスクバーボタンのみ表示されるようになりました。けれどVBを終了してやりなおすと、2つ表示されてしまいました。
'///新規ブックの編集処理///の中には今は何も記入していません。
ボタンも1度しかクリックしてないのですが。。。
なにが原因でしょうか?よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) 別ブックからシートのコピー 3 2022/04/01 20:07
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
このQ&Aを見た人はこんなQ&Aも見ています
-
VBでEXCELのシートのコピーに関して
Visual Basic(VBA)
-
VB.net(2005)でエクセルの特定名称のシートを操作したい。
Visual Basic(VBA)
-
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
-
4
VB.NETにてエクセルファイルの保存方法
Visual Basic(VBA)
-
5
エクセルの列一括書き込み
Visual Basic(VBA)
-
6
エクセルのセル最終行取得
Visual Basic(VBA)
-
7
VB2010でExcelの行をコピーして挿入する
Visual Basic(VBA)
-
8
VB.NETで縦書表示をしたいのですが可能でしょうか。
Visual Basic(VBA)
-
9
VB6,リストボックスの特定行の色変更は可能?
Visual Basic(VBA)
-
10
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
11
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
12
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
13
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
14
VBで実行中のEXEファイルの情報を取得したい
Visual Basic(VBA)
-
15
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
16
フォームの再読み込み
Visual Basic(VBA)
-
17
フォームを画面のど真ん中に表示させたいのですが
Visual Basic(VBA)
-
18
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
19
【VB.NET】Excelの最終行までの取得方法
Microsoft ASP
-
20
VB.NETでボタンのクリックイベントハンドラが2回実行される
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
Excelマクロ 該当する値の行番...
-
エクセル VBA 他シートの行を選...
-
Excelのマクロコードについて教...
-
【ExcelVBA】インデックスが有...
-
vbaでvbaProjectのパスワード解...
-
【Excel VBA】書き込み先ブック...
-
【マクロ】アクティブセルにブ...
-
エクセルVBAが途中で止まります
-
VBAで別ブックのシートを指定し...
-
【前回の続き続きです、ご教示...
-
VBAで別のブックにシートをコピ...
-
【ExcelVBA】zip圧縮されたCSV...
-
【ご教示ください】VBAの記述方...
-
2つ目のコンボボックスが動作...
-
VBA 実行時エラー 2147024893
-
Excel VBA 指定したセル範囲の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
【Excel VBA】書き込み先ブック...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
[Excel]ADODBでNull変換されて...
-
Excelファイルを開くとき、読み...
-
VBA 実行時エラー 2147024893
-
Excelマクロ 該当する値の行番...
-
Excel にて、 リストボックスの...
-
VBS Bookを閉じるコード
-
複数のエクセルファイルとシー...
-
【ExcelVBA】インデックスが有...
おすすめ情報