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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
VBでEXCELのシートのコピーに関して
Visual Basic(VBA)
-
VB2010でExcelの行をコピーして挿入する
Visual Basic(VBA)
-
VB.NETでEXCELファイルを開き、保存先をデフォルトで指定したい。
Visual Basic(VBA)
-
-
4
vb.netからエクセル関数書き込み
Visual Basic(VBA)
-
5
Excel:印刷できる幅の調整はできますか
Visual Basic(VBA)
-
6
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
7
VB6でExcelシートのコピー、貼付け
Visual Basic(VBA)
-
8
【VB.NET】Excelの最終行までの取得方法
Microsoft ASP
-
9
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
10
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
11
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
12
VB.NETによるEXCELの行挿入
Visual Basic(VBA)
-
13
DBから取得した値を配列へ代入する
Visual Basic(VBA)
-
14
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
15
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
16
【VB6】EXCELのシート名を変更したい
Visual Basic(VBA)
-
17
VB6.0でエクセル保存する時の保存場所の指定。
Visual Basic(VBA)
-
18
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
19
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
20
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
【前回の続き続きです、ご教示...
-
エクセルのマクロについて教え...
-
VBA 別ブックからコピペしたい...
-
ExcelのVBAです。フォルダ内の...
-
【前回の続きです、ご教示くだ...
-
VBS Bookを閉じるコード
-
エクセルのマクロについて教え...
-
ADOで複数のBookから抽出
-
【Excel VBA】書き込み先ブック...
-
【マクロ】違うフォルダにある...
-
Excel VBA 保存時にフォルダを...
-
ユーザーフォームの切り替えに...
-
別ブックをダイアログボックス...
-
フォルダ内の全てのファイルに...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】インデックスが有...
-
マクロVBA別Excelブックにデー...
-
エクセルマクロで、他ブックか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBS Bookを閉じるコード
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
ExcelのVBAです。フォルダ内の...
-
vbaで他のブックに転記したい。...
-
フォルダ内の全てのファイルに...
-
VBAで複数のブックを開かずに処...
-
VBSでExcelのオープン確認
-
VBA 実行時エラー 2147024893
-
【Excel VBA】書き込み先ブック...
-
VBA シート名が一致した場合の...
おすすめ情報