[[20160610163303]] 『指定のシートをcsvで保存したい(名前を指定して=x(みさと) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『指定のシートをcsvで保存したい(名前を指定して)』(みさと)

指定のシートを(新しいファイルに)コピーして名前をつけてcsv保存したいのですが、下のコードを作成したところ、
保存のウィンドウが出てくるのに保存ボタンを押しても保存されません。
VBA初心者のため、申し訳ありませんがお分かりになる方、どこが不備なのか
どのように直せばよいのかを教えて頂けないでしょうか。

よろしくお願いいたします。

Sub saveAsCSV()

Application.DisplayAlerts = False

Dim ShName As String
Dim SaveFileName
Dim WSH As Variant, StrIntd As String

 ShName = "SSS" & Range("C2") & "-" & Range("G2")  
'ShNameを"SSS"&C2G2"と設定

Sheets(ShName).Copy 'ShNameシートをコピー

Set WSH = CreateObject("WScript.Shell")
ChDir WSH.SpecialFolders("Desktop")

SaveFileName = Application.GetSaveAsFilename(ShName & ".csv","CSVファイル(*.csv),*.csv")

ActiveWindow.Close
'CSVとして保存 保存名はShName アクティブウィンドウを閉じる

Application.DisplayAlerts = True

End sub

< 使用 Excel:Excel2013、使用 OS:Windows7 >


Application.GetSaveAsFilename は、ファイル保存用のダイアログを表示する命令であり、ファイルを選択するまでが仕事です。
なので、この行を消しても、同じ動きになるはずですよ。

ActiveWindow.Closeは、Excelを閉じる命令です。自ブックが保存されていないので、ここで保存するダイアログが再び表示されます。
こっちで選択した場所にファイル保存されているはずなので、最初に選んだフォルダではなく、2回目に選んだ(選ばなかった)フォルダの方を調べてみてください。CDしているので、デスクトップ直下かな?
(???) 2016/06/10(金) 17:16


(???)さん

ありがとうございます。
そうなんです!Application.GetSaveAsFilenameで保存ウィンドウがでて保存ボタンを押したはずなのに
ActiveWindowCloseのときにまた保存ウィンドウが出てくるので、???よくわからなかったのです。

Application.GetSaveAsFilenameの際に保存できるようなコードを教えて頂ければ
幸いです。いろいろ調べたのですが、初心者の私にはわからないので。

すみません。よろしくお願いいたします。
(みさと) 2016/06/10(金) 17:29


ちょっと整形して、こんな感じで。

 Sub saveAsCSV()
    Dim ShName As String
    Dim SaveFileName As Variant
    Dim StrIntd As String

    Application.DisplayAlerts = False
    ShName = "SSS" & Range("C2") & "-" & Range("G2")
    Sheets(ShName).Copy

    ChDir CreateObject("WScript.Shell").SpecialFolders("Desktop")
    SaveFileName = Application.GetSaveAsFilename(ShName & ".csv", "CSVファイル(*.csv),*.csv")
    If SaveFileName <> False Then
        ActiveWorkbook.SaveAs SaveFileName, xlCSV
    End If
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
 End Sub
(???) 2016/06/10(金) 18:01

(???)さん

お礼が遅くなりすみません。
教えて頂いたコードで試したところ、保存できました!!
ActiveWorkbook.SaveAs SaveFileName, xlCSVこのコードが必要だったのでしょうか。
大変助かりました。
ありがとうございました。

(みさと) 2016/06/13(月) 10:01


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.