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のように、ファイルは作詞されますが、「マイドキュメント」に保存されてしまいます。
解決法がありますでしょうか。
重ねてよろしくお願いいたします。
No.2
- 回答日時:
固定の名前で良いのであれば、Workbook.SaveAs メソッドのFilenameパラメータを指定すればOKです。
詳細はExcelのヘルプをご確認ください。早速ご教示ありがとうございました。
ファイル名を付ける方法も理解して実行できました。
なお、ファイル名を付けないで保存しますと、保存先は、元のファイルのフォルダーでしたが、ファイル名を付けて保存しますと、保存先は、「ドキュメント」になってしまいました。(パスは指定しておりませんので)
どちらかの選択になるようです。
どちらがより便利か、現場の人と相談して決めたいと思います。
No.1
- 回答日時:
ご質問に記載されている内容だけであれば、こんな感じです。
ただ、「保存するファイル名を指定したい」とか、「別の新しいBookは保存後に閉じたい」とかの要望があるのであれば、それなりに手を加える必要がありますが・・・。
Sub sample()
Sheets("明細").Copy
ActiveWorkbook.SaveAs FileFormat:=xlCSV
End Sub
早速ご教示いただき、ありがとうございました。
試作しましたが、期待通りに成功しました。
ところで、ご指摘のとおり、もし、「保存するファイル名を指定したい」には、どうすればよいか、ご教示いただける助かりますが、如何でしょうか。「ファイル名」は、”明細CSV”のような名称を固定してマクロに書き込むことでOKです。
その後に作業しますので、閉じる必要はございません。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キャバクラや風俗をクレカで支...
-
「内訳」と「明細」の違い
-
明細と詳細
-
VISA国内利用vsカンタンケッサイサービス ...
-
クレジットカード代金取り消し
-
クレジットカード不正利用?
-
【クリーニング店のレシート(明...
-
クレジットカード明細にある「...
-
モバイルSuicaの明細
-
給料が早めに振り込まれること...
-
給与明細を渡してくれない
-
MUFGカードについて質問です。 ...
-
Web明細の削除
-
楽天カードの明細はその月の利...
-
記憶のない請求について
-
楽天カードでガソリン入れたの...
-
毎月の請求
-
アパホテルをアプリから予約し...
-
FC2コンテンツマーケットの購入...
-
ヨドバシでキャンセルしました...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「内訳」と「明細」の違い
-
キャバクラや風俗をクレカで支...
-
VISA国内利用vsカンタンケッサイサービス ...
-
クレジットカード明細にある「...
-
クレジットカード不正利用?
-
apple bill ってなんですか? 6...
-
Accessサブレポートの内容が重...
-
明細と詳細
-
アクセスにtxtファイルの指定行...
-
「d払いご利用可能額」とご利用...
-
確定申告を自宅のパソコンでし...
-
【クリーニング店のレシート(明...
-
料金について
-
三井住友カードはメールで問い...
-
給与明細を渡してくれない
-
docomo.携帯請求書が急に届かな...
-
XMLをエクセルに取り込むマクロ
-
自己破産申請したら全クレジッ...
-
クレジットカードを見たらヤフ...
-
メールレディ携帯2台持ちについ...
おすすめ情報
試行錯誤して、下記の構文で成功しました。
また、「元のフォルダーに、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に差し上げますので、ご了解をお願いいたします。