No.1
- 回答日時:
ご質問に記載されている内容だけであれば、こんな感じです。
ただ、「保存するファイル名を指定したい」とか、「別の新しいBookは保存後に閉じたい」とかの要望があるのであれば、それなりに手を加える必要がありますが・・・。
Sub sample()
Sheets("明細").Copy
ActiveWorkbook.SaveAs FileFormat:=xlCSV
End Sub
早速ご教示いただき、ありがとうございました。
試作しましたが、期待通りに成功しました。
ところで、ご指摘のとおり、もし、「保存するファイル名を指定したい」には、どうすればよいか、ご教示いただける助かりますが、如何でしょうか。「ファイル名」は、”明細CSV”のような名称を固定してマクロに書き込むことでOKです。
その後に作業しますので、閉じる必要はございません。
よろしくお願いいたします。
No.2
- 回答日時:
固定の名前で良いのであれば、Workbook.SaveAs メソッドのFilenameパラメータを指定すればOKです。
詳細はExcelのヘルプをご確認ください。早速ご教示ありがとうございました。
ファイル名を付ける方法も理解して実行できました。
なお、ファイル名を付けないで保存しますと、保存先は、元のファイルのフォルダーでしたが、ファイル名を付けて保存しますと、保存先は、「ドキュメント」になってしまいました。(パスは指定しておりませんので)
どちらかの選択になるようです。
どちらがより便利か、現場の人と相談して決めたいと思います。
No.3ベストアンサー
- 回答日時:
任意のファイル名にするなら、ダイアログボックスを設けたほうがよいです。
(2番目)Sub MakingCsv()
Dim wb As Workbook
Dim myPath As String
Dim fName As String
'フォルダーは任意でお願いします。
myPath = Application.DefaultFilePath & "売上" &"\" '末尾は必ず¥を入れる
'拡張子はつけないようにしてください。以下は、明細20171113.csvになります。
fName = myPath & "明細" & Format$(Date, "yyyymmdd")
ActiveSheet.Copy
Set wb = ActiveWorkbook
wb.SaveAs Filename:=fName, FileFormat:=xlCSV
wb.Close False
End Sub
''-----------------
Sub MakingCsv2()
Dim wb As Workbook
Dim myPath As String
Dim orgDir As String
Dim fName As Variant '変数の型が変わります
orgDir = CurDir '現在フォルダーを確保
'フォルダーは書き換えてください
myPath = Application.DefaultFilePath & "売上" & "\" '末尾は必ず¥を入れる
ChDir myPath
fName = Application.GetSaveAsFilename( _
"明細" & Format$(Date, "yyyymmdd"), fileFilter:="CSV Files (*.csv), *.csv")
If fName = False Then Exit Sub 'キャンセル
ActiveSheet.Copy
Set wb = ActiveWorkbook
wb.SaveAs Filename:=fName, FileFormat:=xlCSV
wb.Close False
ChDir orgDir
End Sub
ご親切なご回答ありがとうございました。
上記2つとも、試してみましたが、どちらもエラーになってしまします。
1番目は、
Sub MakingCsv()
Dim wb As Workbook
Dim myPath As String
Dim fName As String
myPath = Application.DefaultFilePath & "売上" & "\"
fName = myPath & "明細" & Format$(Date, "yyyymmdd")
ActiveSheet.Copy
Set wb = ActiveWorkbook
⇒ wb.SaveAs Filename:=fName, FileFormat:=xlCSV
wb.Close False
End Sub
において、
⇒ wb.SaveAs Filename:=fName, FileFormat:=xlCSVV
の箇所で、黄色のハイライトとなっています。(「⇒」は、マクロに入れていません)
エラーメッセージは、
「‘明細20171114.csv’にアクセスできません。ファイルが破損しているか、応答しないサーバーにあるか、読み取り専用に設定されています」
となっています。
2番目は、
「実行時エラー’76’」のメッセージが出てきましたので、「デバッグ」のボタンを押すと、
「ChDir myPath」のところで、黄色のハイライトになっております。
No1ママチャリ様を参考にして、自分なりに、元フォルダーに保存するように、いろいろやってみましたが、どれもうまくいきません。
ファイル名、明細20171114.cscのように、ファイルは作詞されますが、「マイドキュメント」に保存されてしまいます。
解決法がありますでしょうか。
重ねてよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルで保存時に全部のシートの最終行をコピーして数値で貼り付けたい 3 2023/08/14 15:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「内訳」と「明細」の違い
-
キャバクラや風俗をクレカで支...
-
クレジットカード明細にある「...
-
VISA国内利用vsカンタンケッサイサービス ...
-
三井住友カードはメールで問い...
-
docomo.携帯請求書が急に届かな...
-
郵貯の合算について
-
アクセス サブレポートの改行...
-
PayPayカードの利用明細について
-
クレジットカード不正利用?
-
アクセスにtxtファイルの指定行...
-
【クリーニング店のレシート(明...
-
ETC利用料の明細
-
ユニクロ店舗でカード払いした...
-
クレジットカード明細について
-
電子明細システムについて質問...
-
アクセス 結合プロパティ が...
-
イオンカード複数登録
-
Accessサブレポートの内容が重...
-
Yahooカードの支払い明細が分か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャバクラや風俗をクレカで支...
-
「内訳」と「明細」の違い
-
VISA国内利用vsカンタンケッサイサービス ...
-
クレジットカード明細にある「...
-
クレジットカード不正利用?
-
三井住友カードはメールで問い...
-
「d払いご利用可能額」とご利用...
-
料金について
-
Accessサブレポートの内容が重...
-
明細と詳細
-
アクセスにtxtファイルの指定行...
-
確定申告を自宅のパソコンでし...
-
ETC利用料の明細
-
自己破産申請したら全クレジッ...
-
XMLをエクセルに取り込むマクロ
-
docomo.携帯請求書が急に届かな...
-
【クリーニング店のレシート(明...
-
PayPayカードの利用明細について
-
給与明細を渡してくれない
-
歯科医院で明細書が出ない所
おすすめ情報
試行錯誤して、下記の構文で成功しました。
また、「元のフォルダーに、CSV形式で保存しました。」のメッセージを付けました。
大変にありがとうございました。
Sub MakingCsv()
Dim wb As Workbook
Dim myPath As String
Dim fName As String
myPath = CurDir
fName = myPath & "\" & "明細★" & Format$(Date, "yyyymmdd")
ActiveSheet.Copy
Set wb = ActiveWorkbook
wb.SaveAs Filename:=fName, FileFormat:=xlCSV
wb.Close False
MsgBox "元のフォルダーに、CSV形式で保存しました。"
End Sub
今回、ママチャリ様のご貢献は絶大でしたが、さらにその先をNo3.WindFaller様に教えていただきましたので、ベストアンサーをWindFallerに差し上げますので、ご了解をお願いいたします。