エクセルファイルを保存する際に、~.xls(エクセル形式)で保存を行い、
VBマクロによって自動的に~.csv(CSV形式)で保存させることは可能でしょうか?
実際にエクセルのマクロの記録を使って試してみたのですが、うまくできませんでした。
理想としては、
マクロを含んだ、あるエクセルファイル(Test.xls)において、
[名前を付けて保存]や
[上書き保存]
が行われた場合に、通常の保存の動作と同時に、
CSVファイルも生成(Test.csv)もしくは上書きされてほしいのですが、どうでしょうか?
このようなことは可能でしょうか?
小姑みたいで嫌なんですが
> 発言される前に「使用上の注意」を必ずお読み下さい。
「使用上の注意」はお読みになられましたか。
ここで発言する方のルールですので、ご協力願います。
以下の内容はEXCEL2000において可能であるのは知っていますが
その他のバージョンにおいては未確認です。
1.VBEditorを開く
2.ProjectExplorerにてThisWorkBookを選択しコードを表示する。
3.以下のコードを書く
>Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
>
> Dim bolTemp As Boolean
>
> bolTemp = Application.DisplayAlerts
> Application.DisplayAlerts = False
> Sheets(Sheet1).Copy
> ActiveWorkbook.SaveAs C:\Temp\ThisWorkBooks.csv, xlCSV
> ActiveWorkbook.Saved = True
> ActiveWorkbook.Close
> Application.DisplayAlerts = bolTemp
>
>End Sub
Sheet1がC:\Temp\ThisWorkBooks.csvというファイル名で保存されるはずです。
但しこの方法だとCSVを保存した後でxlsを保存することになります。
ちなみに通常の保存に関してはOKなはずですが「名前を付けて保存」において
有効かどうかは知りません。そのあたりはご自身で確認ください。
ベーちゃん様ありがとうございます。
おかげ様で理想に近づくことができました。
使用上の注意読んでませんでした。すみません。
次回より過去ログを調べるようにします。ありがとうございました。