- ベストアンサー
エクセル:シートを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側の設定以外で何か方法があれば、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>新しいBookが表示されては消えていくという操作が高速で繰り返されることによってちらちらする、 >という状況の改善案についてだったのですが、 単純な方法ですが、メニューバーの「ツール」-[オプション」で、 表示タブの右上にある「ウインドウをタスクバーに表示」のチェックを はずせば、お望みの結果が得られると思います。
その他の回答 (1)
- taka0028
- ベストアンサー率33% (19/57)
Application.ScreenUpdatingを使うと画面更新しないのでちらちらはなくなりますよ。 Application.ScreenUpdating = False CSV出力ロジック Application.ScreenUpdating = TRUE でどうですか?
補足
回答ありがとうございます。 Application.ScreenUpdatingを組み込んみたところ、 エクセル画面のシートのちらつきはなくなりました。 何故かエクセル画面上のちらつきは気にしてませんでしたが、このApplication.ScreenUpdatingは使わせてもらおうと思います。 質問したのは画面下のタスクバー内で、 新しいBookが表示されては消えていくという操作が高速で繰り返されることによってちらちらする、 という状況の改善案についてだったのですが、 こちらは物理的(?)に不可能でしょうか? 同じエクセルの枠内に新規Bookを作成しても、 (Excelファイルを開くと「Microsoft Excel」という大きな枠の中にBookが表示されますよね)、 タスクバーには別アイコンとして表示されるから不可能なのかもしれないとも思うのですが。
お礼
回答ありがとうございます。 完璧に望んだ結果になりました! ありがとうございます。 色々設定があるものですね~、オフィス系ソフトには。