エクセル:シートを保存するマクロ
あるエクセルファイルFile.xls内に、4つのシートSheet1,Sheet2,Sheet3,Sheet4があるとして、
4つのシートを個別にcsvファイルとして保存するようなマクロを作りたいです。
▼ソースです
(ここまでのコードで、Pathに保存先のディレクトリ名を取得する部分があるとお考えください)
Filename = "Sheet1" '保存するシート名は、Sheet1~4
GoSub Save1
Filename = "Sheet2"
GoSub Save1
Filename = "Sheet3"
GoSub Save1
Filename = "Sheet4"
GoSub Save1
'保存完了後は、File.xls内Sheet1のCells(4, 1)にカーソルを配置。
Sheets("Sheet1").Select Cells(4, 1).Select
Exit Sub
Save1:
Sheets(Filename).Select
fname = Path & "\" & Filename & ".csv"
ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV, CreateBackup:=False
Return
End Sub
以上のソースで実行すると、
指定したディレクトリにsheet1.csv、sheet2.csv、sheet3.csv、sheet4.csvの4ファイルができます。
ここまでは問題ないのですが、
マクロを実行後、Sheet4.csv(最後に保存したファイル)が開かれた状態になってしまいます。
しかも、ファイル名はSheet4.csvなのに、シートSheet1~4を持っている状態です。
普通にSheet4.csvファイルを開くと、シートはSheet4しかありません。
状態が伝わるでしょうか?
File.xlsのマクロを実行しているので、実行完了後もFile.xlsを開いておきたいのですが、
どのような記述を加えればよいでしょうか?
マクロ(VBA)は使い始めたばかりなので説明されても理解できないかもしれませんが、
できればよろしくお願いいたします。