[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『指定のシートを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 >
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.