• 締切済み

CSV形式で名前を付けて保存 マクロ

教えてください。 エクセルでシート2を  「名前を付けて保存」ダイアログを表示させ、  「保存する場所」をデスクトップにして、  「ファイル名」をシート1のセルA7に設定し、  「ファイルの種類」をCSV形式に設定と したいので色々と調べそれぞれの構文は分かったのですが、 それらを組み合わせるとエラーがでて上手くできません。 例えば Sub サンプル() Application.Dialogs(xlDialogSaveAs).Show FileFormat:=xlCSV End Sub 上記のように入力すると FileFormat:=xlCSVの箇所でエラーが発生します。 仕事で使えればかなり楽になるので初心者なりに頑張っていますが、 行き詰っており、どなたか教えて頂けないでしょうか? お願いします。

みんなの回答

回答No.2

マシン環境が不明なので、とりあえず無難なところで WSH(WindowsScriptHost)を使った場合です。 (XPやVISTAなら標準でインストールされているのでそのまま使えるはず) Sub サンプル() Dim myDir As String myDir = CreateObject("WScript.Shell").SpecialFolders("Desktop") Application.Dialogs(xlDialogSaveAs).Show myDir & "\" & Sheets("Sheet1").Range("B3").Value & ".csv", arg2:=xlCSV End Sub シートとセル名を任意に変更すればいけるかなと。 拡張子(".csv")をつけるなら、その後ろの"arg2:=xlCSV"は書かなくてもよいです。

kellysann
質問者

お礼

お礼が遅くなってすみません。 教えていただいた通り成功しました。 ただ、「シート1」と「シート2」があり、そのうち「シート2」だけを保存できるようにしたいのですが、また悩み中です。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

>「ファイル名」をシート1のセルA7に設定し この意味がわかりません セルの値をファイル名として保存すると言う意味? 分らないので、Sheet1のA7の値をファイル名にして保存するようにしています CSVで保存したいシートを表示してマクロを実行してください ディスクトップのパスはマクロで取得するので、ダイアログは表示しません Sub test() Dim Path As String Path = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" ActiveWorkbook.SaveAs Filename:=Path & Worksheets("sheet1").Range("a7").Value, FileFormat:=xlCSV End Sub 以上参考まで

kellysann
質問者

お礼

早速の回答ありがとうございます。 教えていただいたマクロを実行するとエラーがでますので、 解決を試みてます。

関連するQ&A