• 締切済み

エクセル2007VBAの質問です。

エクセル2007VBAで下記の事をしたいのですがうまくいきません。 ・エクセルシートの数式を消して値を残したものを別名で保存する。 ※保存時は「名前をつけて保存」ダイアログを出したいです。 現在は、下記内容で記述してみましたが、保存されません。 初心者がネットで調べて書いたので、めちゃくちゃな所があると思いますが宜しくお願いします。 ------------------------------------------------------------- Sub シートコピー() ' ' シートを別のブックにコピーする。 ' ' Const cnsTITLE = "エクセル作成" Const cnsFILTER = "エクセルファイル (*.xls),*.xls" Const xlsfile = "C:\temp\ファイル名を入力して下さい。" ' Columns("A:R").Select Selection.Copy Workbooks.Add Columns("A:A").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Set xlsApp = Application xlsApp.StatusBar = "出力ファイル名を指定して下さい。" strFILENAME = xlsApp.GetSaveAsFilename(InitialFileName:=xlsfile, _ FileFilter:=cnsFILTER, title:=cnsTITLE) End Sub -------------------------------------------------------------

みんなの回答

  • FEX2053
  • ベストアンサー率37% (7991/21373)
回答No.1

手元に2007がないのでチェックはしてませんが、これで良いかと。 Sub シートコピー() Cells.Select Selection.Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteValues F_Name = Application.GetSaveAsFilename( _ InitialFileName:=ThisWorkbook.Name _ , FileFilter:="エクセルファイル(*.xls),*.xls" _ , FilterIndex:=1 _ , Title:="保存先の指定") ThisWorkbook.SaveAs Filename:=F_Name ActiveWindow.Close End Sub このままだと、最後にシートを閉じるときにメッセージが表示されます。 常時気にせず「いいえ」をクリックすればいいのですが、気になるなら Application.DisplayAlerts を false/True で切り替えてください。

h04835
質問者

補足

早々に回答頂き有難う御座います。 この内容で確認させて頂いたところ正常に保存が出来ました。 ですが、説明不足で申し訳ありませんが、該当のエクセルには 数式とマクロと実行ボタンがついていて、書式・値だけをそのまま 残したいのですが、何か方法はありますでしょうか?

関連するQ&A

専門家に質問してみよう