Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8773 / 13644 ツリー ←次へ | 前へ→

【31270】非表示シートから新しいCSVファイルを作成する方法 Harry 05/11/16(水) 13:29 質問[未読]
【31273】Re:非表示シートから新しいCSVファイルを作... Kein 05/11/16(水) 14:08 回答[未読]
【31274】Re:非表示シートから新しいCSVファイルを作... Harry 05/11/16(水) 14:29 お礼[未読]

【31270】非表示シートから新しいCSVファイルを作...
質問  Harry  - 05/11/16(水) 13:29 -

引用なし
パスワード
   非表示のシートのデータを用いて新しいCSVファイルを作成する方法について悩んでいます。

具体的には、Sheet1にあるボタンを押すと、非表示のSheet2に加工後のデータを転記し、Sheet1以外は非表示の状態でSheet2のデータから新規CSVファイルを作成する、というものです。


下記の2つの方法で試してみたのですが、

Sheets("Sheet2").Copy
ActiveWorkbook.SaveAs Filename:= _
"test.csv", FileFormat:=xlCSV, _
CreateBackup:=False
ActiveWindow.Close (True)

とすると、
「Worksheets("Sheet2").Visible = True」
の1文を先頭に入れないとCOPY行でエラーになってしまいますし、


Sheets("Sheet2").SaveAs Filename:= _
    "test.csv", FileFormat:=xlCSV, _
    CreateBackup:=False

とすると、元のワークブック自体が更新されてしまいます。


何か良い方法があれば教えてください。
よろしくお願い致します。

【31273】Re:非表示シートから新しいCSVファイルを...
回答  Kein  - 05/11/16(水) 14:08 -

引用なし
パスワード
   >「Worksheets("Sheet2").Visible = True」
>の1文を先頭に入れないとCOPY行でエラー
つまり、絶対にシートの中身を可視状態にしたくない、ということであれば
そのコードの前に Application.ScreenUpdating = False を追加し、
コピー処理が終了してシートの Visible = False をした後に
Application.ScreenUpdating = True と戻せば良いでしょう。
それが一番てっとりばやい方法ですが、過去ログにもたくさんある
Openステートメントを使ったコードで作成する方法もあります。

【31274】Re:非表示シートから新しいCSVファイルを...
お礼  Harry  - 05/11/16(水) 14:29 -

引用なし
パスワード
   Kein さん

>そのコードの前に Application.ScreenUpdating = False を追加し、
>コピー処理が終了してシートの Visible = False をした後に
>Application.ScreenUpdating = True と戻せば良いでしょう。

早速のご回答、ありがとうございました。
上記方法でうまくいきました。


>それが一番てっとりばやい方法ですが、過去ログにもたくさんある
>Openステートメントを使ったコードで作成する方法もあります。

Openステートメントについても、勉強してみます。
ありがとうございました!

8773 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free