アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください。

エクセルでシート2を
 「名前を付けて保存」ダイアログを表示させ、
 「保存する場所」をデスクトップにして、
 「ファイル名」をシート1のセルA7に設定し、
 「ファイルの種類」をCSV形式に設定と
したいので色々と調べそれぞれの構文は分かったのですが、
それらを組み合わせるとエラーがでて上手くできません。

例えば
Sub サンプル()
Application.Dialogs(xlDialogSaveAs).Show
FileFormat:=xlCSV
End Sub

上記のように入力すると
FileFormat:=xlCSVの箇所でエラーが発生します。

仕事で使えればかなり楽になるので初心者なりに頑張っていますが、
行き詰っており、どなたか教えて頂けないでしょうか?
お願いします。

A 回答 (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"は書かなくてもよいです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/30 19:26

>「ファイル名」をシート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

以上参考まで
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/22 22:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!