![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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)
-
VB2010でExcelの行をコピーして挿入する
Visual Basic(VBA)
-
vb.netからエクセル関数書き込み
Visual Basic(VBA)
-
-
4
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
5
VB6でExcelシートのコピー、貼付け
Visual Basic(VBA)
-
6
【VB.NET】Excelの最終行までの取得方法
Microsoft ASP
-
7
VB.NETでEXCELファイルを開き、保存先をデフォルトで指定したい。
Visual Basic(VBA)
-
8
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
9
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
10
VB6.0でエクセル保存する時の保存場所の指定。
Visual Basic(VBA)
-
11
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
-
12
VB.NETによるEXCELの行挿入
Visual Basic(VBA)
-
13
【VB6】EXCELのシート名を変更したい
Visual Basic(VBA)
-
14
エクセルのファイルを,VB.NETで読み込みたいです。
Visual Basic(VBA)
-
15
VB6.0でEXCELにシートを追加したい
Visual Basic(VBA)
-
16
VB6.0-整数と余りを求める
Visual Basic(VBA)
-
17
vb.netでEXCEL起動がうまくできないのですが原因は何が考えられ
Visual Basic(VBA)
-
18
「オブジェクト変数または With ブロック変数が設定されていません。」の修正方法が分かりません
Visual Basic(VBA)
-
19
VB.net でトグルボタンを実現したい
Visual Basic(VBA)
-
20
VB6.0でExcel,PDF,Word出力方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAが途中で止まります
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
vbaで他のブックに転記したい。...
-
ワイルドカード「*」を使うとう...
-
ACCESSVBA からExcelの他ブック...
-
【ExcelVBA】インデックスが有...
-
vbaでvbaProjectのパスワード解...
-
VBAで別のブックにシートをコピ...
-
Excelのマクロについて教えてく...
-
【マクロ】違うフォルダにある...
-
VBA コードを実行すると画面が...
-
VBS Bookを閉じるコード
-
[Excel]ADODBでNull変換されて...
-
pythonでクラスで複数のメソッ...
-
エクセルマクロで、他ブックか...
-
VBA 実行時エラー 2147024893
-
ExcelVBA:すでに開かれている...
-
【VBA】全シートの計算式を全て...
-
VBの処理結果をEXCELシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
(マクロ)データをAブックからB...
-
VBS Bookを閉じるコード
-
VBA 別ブックからコピペしたい...
-
VBA 複数のエクセルから一つの...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
【VBA】全シートの計算式を全て...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
ExcelのVBAです。フォルダ内の...
おすすめ情報