こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル:シートを1つずつ別ファイルで保存する際に

WindowsXPでExcel2003を使っています。

1つのエクセルファイルの中にSheet1,Sheet2,Sheet3というシートが3個あり、
それらのシートを1枚ずつCSVファイルとして保存したいです(Sheet1.csv、Sheet2.csv、Sheet3.csv)。
現在のコードは以下です。

  Path = 保存場所
For Each SheetName In Array("Sheet1", "Sheet2", "Sheet3")
Worksheets(SheetName).Copy
ActiveSheet.SaveAs Filename:=Path & SheetName, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close False
Next SheetName

このコードだと、新しいBookを開いてコピーし、それを閉じる、
という作業を繰り返しているらしく(自分で一から組んだわけではなく、コード完全に理解できてません)、
タスクバーがちらつきます。
ここに挙げたコードでは3シートですが、実際は20シート程あるので、
タスクバーの「開く・閉じる」の繰り返しはちょっと目立ちます。
これ以外の方法で(とりあえずタスクバーがちらつかなければOK)、
各シートを別ファイルとして保存することは不可能でしょうか?
自分だけが使いたいわけではないので、
タスクバーを隠しておくなどWindows側の設定以外で何か方法があれば、よろしくお願いします。

投稿日時 - 2007-04-12 10:40:40

QNo.2914731

困ってます

質問者が選んだベストアンサー

>新しいBookが表示されては消えていくという操作が高速で繰り返されることによってちらちらする、
>という状況の改善案についてだったのですが、

単純な方法ですが、メニューバーの「ツール」-[オプション」で、
表示タブの右上にある「ウインドウをタスクバーに表示」のチェックを
はずせば、お望みの結果が得られると思います。

投稿日時 - 2007-04-13 21:54:34

お礼

回答ありがとうございます。

完璧に望んだ結果になりました!
ありがとうございます。
色々設定があるものですね~、オフィス系ソフトには。

投稿日時 - 2007-04-18 09:01:35

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Application.ScreenUpdatingを使うと画面更新しないのでちらちらはなくなりますよ。

Application.ScreenUpdating = False

CSV出力ロジック

Application.ScreenUpdating = TRUE

でどうですか?

投稿日時 - 2007-04-12 11:26:40

補足

回答ありがとうございます。

Application.ScreenUpdatingを組み込んみたところ、
エクセル画面のシートのちらつきはなくなりました。
何故かエクセル画面上のちらつきは気にしてませんでしたが、このApplication.ScreenUpdatingは使わせてもらおうと思います。

質問したのは画面下のタスクバー内で、
新しいBookが表示されては消えていくという操作が高速で繰り返されることによってちらちらする、
という状況の改善案についてだったのですが、
こちらは物理的(?)に不可能でしょうか?
同じエクセルの枠内に新規Bookを作成しても、
(Excelファイルを開くと「Microsoft Excel」という大きな枠の中にBookが表示されますよね)、
タスクバーには別アイコンとして表示されるから不可能なのかもしれないとも思うのですが。

投稿日時 - 2007-04-12 14:22:33

あなたにオススメの質問